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))); }
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))); } }
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 ;)