Eyl 23, 2014 - X++    4 Yorumlar

Container Kullanımı

Bu konumuzda bir liste tipi olan container kullanımından bahsedeceğiz. Container içerisinden aynı veya birbirinden farklı verileri tutma özelliğine sahip olan bir liste tipidir. İçerisinde tuttuğu veriler basit veri tipleri veya EDT(Extended Data Type) tipinden değerler olabilir.

Container ile işlemler yapabilmek için sistemin içerinde çeşitli metodlar vardır. Aşağıda bu metodların ne işe yaradıklarına dair ve açıklamalar ve örnekler vereceğim.

conPeek
- conPeek(container değişkeni, sıra numarası)
Container içerisindeki sıra numarası verilen değeri döndürür.

conNull
- containerDegiskeni  = conNull()
Containera atandığında içerisindeki değerleri temizler.

conDel
- containerDegiskeni  = conDel(container değişkeni,Başlangıç sırası, başlangıçtan itibaren kaç tane silineceği)
Container değişkenindeki başlangıç sırasından itibaren verilen sıra kadar değeri siler.

conIns
- containerDegiskeni  = conIns(container değişkeni,index sırası,atanacak değer)
Containere değer eklemek için kullanır. Sonuna bir değer ekleyecekseniz index sırası +1 yaparak ekleyebilirsiniz. Araya bir değer ekleyecekseniz direk istediğiniz sıra numarasını yazarak ekleyebilirsiniz. Araya değer eklediğinizde diğer değerler silinmez veya üstüne yazılmaz sadece indexleri bir sıra kaydırılmış olur.

conFind
- indexDegeriniTutacakDegiscek(int) = conFind(container değişkeni,container içerisinde aranacak değer)
Container içerisindeki bir değeri aramak için kullanılır. Sonucunda bulduğu kaydın index değerini döndürür.

conLen
- degisken(int) = conLen(container değişkeni)
Containerın kaç elemanlı olduğunu int cinsinden döndürür.

conPoke
- containerDegiskeni  = conPoke(container değişkeni,değiştireceğiniz değerin sıra numarası,yeni değer)
Container içindeki indexi verilen değerin yeni girilen değerle değiştirilmesi sağlanır.

conUnion
- containerDegiskeni  = conUnion(birinciContainer,ikinciContainer)
Birinci container ile ikinci container karşılaştırılarak ikinci containerdaki değerleri birinci containerla içindeki tekrar etmeyen değerleri ekleyerek atama yapar.

conReverse
- containerDegiskeni  = conReverse(containerDegiskeni );
Container içindeki değerleri tersten sıralayarak istenilen container değişkenine atama yapar.

static void Erkn_ContainerKullanimi(Args _args)
{
    container   con,con1,con2;
    int         a,b,c,d;
    int         indexDegeri;
    int         uzunluk;
    //conPeek
    //atamalar
    con = [11,15,20,45]; //containere atama yapılır
    [a,b,c,d] = con;    //Değişkenlere container ataması yapılabilir.

    info(strfmt("%1,%2,%3,%4 - conPeek",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));
    info(strfmt("%1,%2,%3,%4 - Atama",a,b,c,d));
    //-------------------------------------------------------------------------------------
    //conNull
    con = conNull(); //container içindeki değerler temizlendi

    //-------------------------------------------------------------------------------------
    //ConIns
    //ConIns ile değer yeni değerler ekleme
    con = conIns(con,1,11);
    con = conIns(con,2,20);
    con = conIns(con,3,45);

    info(strfmt("%1,%2,%3 - conIns",conPeek(con,1),conPeek(con,2),conPeek(con,3)));

    //conIns ile araya değer ekleme
    con = conIns(con,2,15);
    info(strfmt("%1,%2,%3,%4 - conIns",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));

    //-------------------------------------------------------------------------------------
    //conDel
    con = conDel(con,3,2); //3. indexten itibaren ve 2 tane değer silinir.
    info(strfmt("%1,%2,%3,%4 - conDel",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));

    //-------------------------------------------------------------------------------------
    //conFind
    con = conIns(con,3,"test");
    con = conIns(con,4,45);
    indexDegeri = conFind(con,15); //aranılan değerin sırası
    info(strfmt("%1,%2,%3,%4 - conFind",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));
    info(strFmt("%1 - conFind",indexDegeri));

    //-------------------------------------------------------------------------------------
    //conLen
    uzunluk = conLen(con);
    info(strfmt("%1,%2,%3,%4 - conLen",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));
    info(strFmt("%1 - conLen",uzunluk));

    //-------------------------------------------------------------------------------------
    //conPoke
    info(strfmt("%1,%2,%3,%4 - conPoke İlk değerler",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));
    con = conPoke(con,2,"deneme");
    info(strfmt("%1,%2,%3,%4 - conPoke Son hali",conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4)));

    //-------------------------------------------------------------------------------------
    //conUnion
    con1 = ["test","abc",55,45,30];
    info(strfmt("%1,%2,%3,%4,%5,%6,%7 - conUnion İlk değerler",
    conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4),conPeek(con,5),conPeek(con,6),conPeek(con,7)));
    con = conUnion(con,con1); //con ile con 1 karsılaştırılarak con da bulunmayan "abc",55 ve 30 değerleri eklenir.
    info(strfmt("%1,%2,%3,%4,%5,%6,%7 - conUnion Son hali",
    conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4),conPeek(con,5),conPeek(con,6),conPeek(con,7)));

    //-------------------------------------------------------------------------------------
    //conReverse
    info(strfmt("%1,%2,%3,%4,%5,%6,%7 - conReverse ilk değerler",
    conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4),conPeek(con,5),conPeek(con,6),conPeek(con,7)));
    con = conReverse(con); //container içerisindeki değerin sıralaması tersten olarak tekrardan sıralanır.
    info(strfmt("%1,%2,%3,%4,%5,%6,%7 - conReverse Son hali",
    conPeek(con,1),conPeek(con,2),conPeek(con,3),conPeek(con,4),conPeek(con,5),conPeek(con,6),conPeek(con,7)));

}

axapta container

Container içindeki değerlerin tamamını alt alta ekrana yazdırmak ile ilgili bir örnek ile konuyu sonlandıralım.

static void Erkn_ContainerOkuma(Args _args)
{
    container   con;
    int         a = 105;
    str         b = "Erkan";
    boolean     c = true;
    Amount      d = 25.25;
    TransDate   t = mkDate(1,10,2014);
    int         uzunluk;
    int         i;

    con = [11,"test",20,45,"deneme",a,b,c,d,t]; //containere atama yapılır

    uzunluk = conLen(con); //uzunlugu bulunur

    for(i = 1; i <= uzunluk ; i++) //Bütün container dönülür
    {
        info(strFmt("%1",conPeek(con,i)));
    }

}

ax2012 container

Erkan OĞUZ

Önceki Konu->

<- Sonraki Konu

Benzer yazılar

4 Yorumlar

  • Erkan bey çok ihtiyacım olan bir konuydu sizin sitenizde tam aradığımı buldum kolay anlatım ve örneklerle çok güzel olmuş

    • Yorumunuz için teşekkür ederim Ufuk bey, yardımcı olabildiğime sevindim.

  • Güzel bir paylaşım emeğine sağlık.

    • Teşekkür ederim ;)

Yorum Yazın...