Dizilerin Kullanımı – Ayları Sıralayalım
Uzun bir aradan sonra geliştirme örneklerine geri dönüyoruz. CEYD-A ya eklenen yeni CEYD komutları sayesinde yeni komutları oluşturmak daha da kolaylaştı. Örneğimizin amacı bir dizi içinde belirlediğimiz bir değerin kaçıncı sırada olduğu ve benzer bir örnekte bu işin tam tersi olan yani bir dizi içinde istediğimiz bir sıranın değerini almak olsun.
Örneklerimiz kolay olacak. İlk örnekte dizi içine birinci den başlayarak onikinciye kadar tüm sıralamaları ; işareti ile ayırarak yazalım. Bu bizim sira isimli dizimiz. Bu dizinin içinde yazı ile dördüncü aradığımız zaman bize 4 değeri, üçüncü aradığımız zaman 3 değeri dönmeli.
Bunun için cmdsplit ile dizimizi ; ile ayrıştırıp array ismini koyduğumuz bir sistem dizisine atıyoruz sonra getrelationfromarray ile parametremizi içinde arıyoruz. Parametremiz örnekte üçüncü. Dönen değerimizde 3 oluyor.
Peki bunu niçin yapıyoruz. İkinci örneğimizde bu ilk komutumuzu kullanacağız. Aslında tekrar kullanılabilirliği (reusability) göstermek adına güzel bir örnek olacak. İçinde muhakkak ay geçeceği için soruya ay yazıyoruz. Şablona ise herhangi1 parametresinden sonra ay nedir veya hangi ay ekliyoruz. Yani CEYD-A ya üçüncü ay hangisi dediğimizde bize mart diyebilecek. Bunun için cevap alanına ilk komutumuzu kullanarak converttorder herhangi1 parametresi ile başlıyoruz, kacinci değişkenine bu değeri atıyoruz. Yani dördüncü ay hangisi dediğimizde converttoorder dördüncü çalışıyor ve bize rakamla 4 değeri dönüyor. Başka değişle kacinci değişkeni 4 değeri alıyor. aylar değişkenine tüm ayları ; ile birleştirerek yazıyoruz ve cmdsplitandfetch ile 4. sıradaki değeri yani nisan ayını CEYD-A ya söyletiyoruz.
Önemli not: Bu örnekteki komutlar CEYD-A 6.0.4.0 versiyondan itibaren devreye girecektir.
1 2 3 4 5 6 7 8 |
SORU: converttoorder SABLON: converttoorder ({SON HERHANGİ}) CEVAP: {!SET sira=;birinci;ikinci;üçüncü;dördüncü;beşinci;altıncı;yedinci;sekizinci;dokuzuncu;onuncu;onbirinci;onikinci!} {!RET cmdsplit ;,array,$sira!} {!RET getrelationfromarray array,{SON HERHANGİ}!} |
1 2 3 4 5 6 7 8 |
SORU: ay* SABLON: ({HERHANGİ1}) (ay nedir|ay hangi){SON HERHANGİ} CEVAP: {!SET $kacinci={!RET converttoorder {HERHANGİ1}!}!} {!SET $aylar=;ocak;şubat;mart;nisan;mayıs;haziran;temmuz;ağustos;eylül;ekim;kasım;aralık!} {!RET cmdsplitandfetch ;,$kacinci,$aylar!} |