| 
                         Bir umuttur yaşamak 
                                 
                               
                Üyelik tarihi: 09 Eylül 1991
                Bulunduğu yer:  Konya
                Mesajlar: 323 
          WEB Sitesi:  https://www.teklan.com.tr/    
          IRC Sunucusu:  irc.teklan.com.tr
          İlgi Alanı:  mIRC Scripting
          Alınan Beğeni:  211
 | 
                                 Token identifier'ları 
 
Önceden yazdığım bir döküman.İşinize yaracağını umuyorum.
 
 mIRC Scripting'in kodlama dilinin yapı taşları olan;
 Token identifier'larını ele alıcağız.
 Bu identifier'lar mIRC Scripting ile uğraşıcaksanız;
 Veya daha iyi kod yazmak istiyorsanız öğrenmeniz gereken önemli bilgilerdir.
 
 -
 
 İlk öncelikle, bu identifier'ları kullanmak için bazı bilgilere ihtiyacımız var.
 Bir karakterin, ascii numarasını öğrenmek için; $asc(karakter)
 Örneğin; //echo -a $asc(a) yaptığımızda; 97 sayısını vericektir.
 Bu 97 sayısı a harf'inin ascii numarasıdır.
 
 Ascii rakam'ını karakter'e çevirme.
 Şimdi yukarıda gödrüğünüz gibi $asc identifier'ı ile bir karakterin ascii numarasını öğrenebildik.
 Şimdi bu ascii numarayı karakter'e çevirmek için; $chr(ascii-numarası)
 Örneğin; //echo -a $chr(97) yaptığınızda, "a" olarak cevap gelicektir.
 Yani mantık olarak $asc identifier'ının tam tersini yapmakta.
 
 Bu bilgileri en başta verdim, çünki token identifier'larında işinizi fazlası ile yarıyacaktır.
 Ve token identifier'larına başlıyalım.
 
 -
 
 1- $addtok(yazı,token,C)
 
 Buradaki C üst tarafta verdiğimiz bilgilerden, bir karakterin $asc(karakter) ile aldığımız ascii sayısıdır.Bu identifier; yazı olan kısıma token yazan yere yazılıcak veriyi eklemenizi sağlar.Ve bu ekleme işlemini text yazısının sonuna ekler.Örneğin; //echo -a $addtok(1 2 3 4 5,6,32)
 Yaptığımızda; "1 2 3 4 5 6" olarak dönecektir.
 Gördüğünüz gibi 6 sayısını en sona ekledi.
 Buradaki 32 eklenicek 6 rakam'ının başına gelecek ascii karakter rakamıdır.
 32 boşluk(space)'un ascii sayısıdır.
 Yani 32 yerine 46(.) yazsaydık "1 2 3 4 5.6" şeklinde cevap alırdık.
 $addtokcs(Case sensitive): $addtokcs şeklinde kullandığınız zaman büyük küçük duyarlı olarak ekleme yapar.
 
 
 2- $deltok(text,N-N2,C)
 
 Bu identifier text olan yerdeki herhangi bir veya birden fazla karakter'i silmek için kullanılır.
 N kısmı numara oluyor. N2 kısmı ise numara 2 oluyor anlaşıldığı gibi.
 Şimdi örnek verince daha iyi anlıyacaksınız.
 Örneğin; a.b.c.4.d diye bir text'imiz var.
 Biz buradaki 4 rakam'ını silmek istiyoruz bunun için, ilk önce 4 rakam'ının kaçıncı sırada olduğuna bakalım.
 a(1.)b(2.)c(3.)4(4.)d(5) Gördüğünüz gibi 4. sırada.
 //echo -a $deltok(a.b.c.4.d,4,46) yaptığımızda; a.b.c.d olarak dönecektir.
 Buradaki 46 nokta(.) karakterinin ascii numarası oluyor.
 Ayrıca N2 diye belirtilen kısım ise şu şekilde oluyor.
 Mesela a.b.c.d.e.f.g diye bir text var ve;
 Siz bu text'in ilk 3(a.b.c) karakterini birden silmek istiyorsunuz, yapmanız gereken;
 //echo -a $deltok(a.b.c.d.e.f.g,1-3,46)
 Yaptığınızda; d.e.f.g olarak dönecektir. Buradaki "1-3" 1. harf'den 3. harfe kadar sil demek oluyor.
 
 
 3- $findtok(text,token,N,C)
 
 Bu identifier text içinde varolan yazıdaki;
 N(sıra) numarası ile aratılacak karakterin(token) kaçıncı sırada olduğunu belirtir.
 Buradaki token; Sıra numarası aranıcak karakter.
 N: Rakam girilecektir. Örneklerle daha iyi anlıyacaksınız.
 C: Bildiğiniz gibi ascii numarasıdır.
 Örneğin; 1.2.3.4.5 diye bir text mevcut.
 Biz burada 2 rakam'ının kaçıncı sırada olduğunu öğrenmek istiyoruz.
 //echo -a $findtok(1.2.3.4.5,2,1,46) yaptığımızda; 2 cevabını alırız.
 Gördüğünüz gibi 2 rakam'ı 2. sırada olduğu için 2 olarak döndü.
 Gayet basit bir identifier'dır. $findtokcs olarak'da kullanılabilir.
 Bildiğiniz gibi cs(case sensitive) büyük küçük duyarlı oluyor.
 
 
 4- $gettok(text,N,C)
 
 Bu identifier tabiri caiz'se, mIRC Scripting'de en gözde olan token'dir.
 Yani bu cümlemden anlıyacağınız gibi, en çok kullanılan;
 En çok kullanıldığına göre o kadar'da işe yarıyan bir identifier'dır.
 Bu identifier text kısmında'ki yazıyı ayırabilmemizi sağlar.
 N: Bildiğiniz üzere sıra numarasıdır.
 C: Yine bildiğiniz gibi ascii numarasıdır.
 Örneğin; text1 text2 text3 diye bir yazımız var. Ve biz bu yazıdaki text2 kısmını almak istiyoruz;
 //echo -a $gettok(text1 text2 text3,2,32) yaptığımızda; text2 olarak cevap gelicektir.
 Buradaki 2 alıcağımız verinin sıra numarası, 32 ise boşluk karakter ascii numarası.
 Bu identifier gerçekten çok kullanışlıdır. Bir kaç örnek göstermek istiyorum.
 Örneğin; ders.dersler.derslerimiz.dersleriniz şeklinde bir text'imiz var.
 Bir burada ders kelimesi hariç hepsini almak istiyoruz;
 //echo -a $gettok(ders.dersler.derslerimiz.dersleriniz,2-,46)
 Yaptığımızda; dersler.derslerimiz.dersleriniz cevabını alırız.
 2- numarasındaki mana, 2. kelime ve sonrasını ayır demektir.
 
 
 5- $instok(text,token,N,C)
 
 Bu identifier text kısmında yazılı olan verilere token(veri) eklemek için kullanılır..
 Buradaki token; eklenicek veridir.
 N: Eklenicek verinin sıra numarasıdır.
 C: Bildiğiniz üzere ascii numarası oluyor.
 Örneğin; ders1|ders2|ders4|ders5 dite bir text'imiz mevcut.
 Ve biz bu text'in 3. sırasına ders3 kelimesini(token) eklemek istiyoruz.
 //echo -a $instok(ders1|ders2|ders4|ders5,ders3,3,124)
 Yaptığımızda; ders1|ders2|ders3|ders4|ders5 olarak dönecektir.
 Yani gördüğünüz gibi ders2 kelimesinin önüne ders3 kelimesini ekledik.
 Buradaki 124 "|" karakterinin ascii numarasıdır.
 Eğer text'in içinde ayraç olarak varolmayan bir karakter numarası girseydik;
 ders3 kelimesini text'in en sonuna ekliyecekti.
 Örneğin; //echo -a $instok(ders1|ders2|ders4|ders5,ders3,3,64)
 Yaptığımızda; ders1|ders2|ders4|ders5@ders3 olarak dönecektir.
 
 
 6- $istok(text,token,C)
 
 Bu identifier'ın kullanımı gayet basittir.
 Token kısmına yazılan veri, text kısmında bulunuyorsa $true olarak dönecektir.
 Örneğin; //echo -a $istok(ders ders1 ders2,ders,32)
 Yaptığımızda, cevap $true olarak dönecektir.
 Buradaki dönen cevap $true; Onaylandı manasına gelir.
 Eğer cevap $false olarak dönerse, onaylanmaz. Dolayısı ile dönmez.
 
 
 7- $matchtok(tokens,string,N,C)
 
 Bu identifier tokens kısmındaki veride girilen string'i arar ve kaç adet bulunduğu rakam ve kullanıma göre belirtir
 Buradaki tokens; aranılacak text oluyor.
 String ise aranılacak veri oluyor.
 N: Bildiğimiz gibi sıra numarası olarak çalışır.
 C: Herdefasında belittiğimiz gibi ascii numarasıdır.
 Örneğin; //echo -a $matchtok(bu dersleri okuyun,e,0,32) yaptığımızda; 2 olarak dönecektir.
 Gördüğünüz gibi içerisinde e bulunan kelime dersleri oluyor.
 Yani; //echo -a $matchtok(bu dersleri okuyun,e,1,32) yaptığımızda; dersleri cevabını alırız.
 İçerisinde e bulunan kelime "dersleri"
 Duruma göre kullanışlı bir token identifier'ıdır.
 Büyük küçük duyarlı olarak işlem yapmak için her zamanki gibi identifier sonuna cs ekliyoruz; $matchtokcs
 
 
 8- $numtok(text,C)
 
 Bu identifier'da gayet basittir.
 Mantığı şu oluyor; text içerisindeki veride C kısmına yazılan karakter'den kaç adet var ise rakam olarak belitir.
 Yani örneğin; //echo -a $numtok(a;b;c;d;e;,59) yaptığımızda, "5" cevabını alırız.
 Buradaki C: Girilen asci numarası oluyor. ";" karakterinin ascii numarası 59'dur.
 Yani ascii numarası 59 olan 5 katakter içeriyormuş text'imiz.
 
 
 9- $puttok(text,token,N,C)
 
 Aslında bu identifier $instok identifier'ı ile neredeyse aynıdır.
 Yalnız bu identifier'daki fark $instok gibi veriyi belirtilen yerin önüne eklemez.
 Yani eklenilen verinin yerini siler.
 Örneğin; //echo -a $puttok(1.2.3.4.5,15,2,46) yaptığımızda; 1.15.3.4.5 olarak dönecektir.
 Gördüğünüz gibi $instok identifier'ındaki gibi verinin önüne eklemedi. Eklenilen sıra numarasındaki veriyi sildi.
 Ve onun yerine belirtilen "15" sayısını ekledi.
 N: Sıra numarası oluyor. Yani eklenilecek veriyi hangisi sıraya koyacağınızı belirliyorsunuz.
 C: Bildiğiniz gibi ascii numarası oluyor. Verdiğimiz örnekte;
 Sıra numarası olarak 2 girdik. Token olarak 15 yazdık. Asci numarası olarak 46(Nokta".") kullandık.
 
 
 10- $remtok(text,token,N,C)
 
 Aslında bu identifier'ın işlevi $remove ile aynıdır.
 Fakat bu identifier'da sıra numarası belirliyebilmek, gayet kolaylık sağlıyor.
 Buradaki text: İçinden veri silnecek yazı olmaktadır.
 Token: Text içerisinde silinecek veri oluyor.
 N: Bildiğiiz gibi sıra numarası. Yani hangi bölümden silinecek bunu belirliyoruz.
 C: Bildiğimiz gibi ascii numarası oluyor.
 Örneğin; //echo -a $remtok(a&b&c&d,a,1,38) yaptığımızda; b&c&d cevabını alırız.
 Yani burada belirtmek istediğimiz;
 text içerisinde 1. sıradaki a verisini ascii numarası belirterek silmek.
 Ascii numarası belirtmemizin sebebi, silinecek verinin önündeki karakterin diğerleri ile aynı olmasıdır.
 Eğer farklı bir ascii numarası belirtirsek, herhangi bir silme işlevi yapamayacaktır.
 
 
 11- $reptok(text,token,new,N,C)
 
 Bu token identifier'ı ise $replace ile aynı görevi görmektedir. Fakat yine sıra numarası belirleyebildiğimiz için;
 Büyük bir ayrıcalık tanımaktadır.
 Buradaki text: İçerisinden veri değiştirilecek yazı oluyor.
 Token: Değiştirilecek veri oluyor.
 New: Değişen verinin yerine gelecek replay verisi oluyor.
 N: Sıra numarası olmaktadır.
 C: Bildiğimiz gibi ascii numarasıdır.
 Örneğin; //echo -a $reptok(ders1.ders2.ders3.ders4,ders4,ders6,1,46)
 Yaptığımızda; ders1.ders2.ders3.ders6 cevabını alırız.
 Şimdi bunu açıklıyalım;
 Verilerin aralarında "." olduğu için ascii numarasını 46 yaptık.
 Token olarak text içerisindeki replay edilmesi istediğimiz veriyi belirttik.(ders4)
 Replay edilmesi gereken kelimesi belirledik.(ders6)
 Ve sonuç olarak; ders1.ders2.ders3.ders6 cevabını almış olduk.
 Bu token identifier'ında cs(case sensitive) kullanabiliyoruz.($reptokcs)
 Biliyorsunuz'ki "cs" büyük küçük duyarlılığı aktif kılacaktır.
 
 
 12- $sorttok(text,C,ncra)
 
 Bu token identifier'ı ise text kısmına yazılan verinin farklı yollar ile sıralanmasına/dizilmesine olanak tanır.
 Parametreleri tanıyalım;
 n: Text içerisindeki verileri en küçük'den büyüğe doğru okutacaktır.
 Örneğin; //echo -a $sorttok(1.3.6.7.5.9,46,n)
 Yaptığımızda; 1.3.5.6.7.9 cevabını alırız. Yani küçükten büyüğe doğru sıralar.
 c: Bu paramtre çok özel'dir. text içerisindeki, kanal prefix'lerini(+,%,@,&) yetki sıralamasına göre gösterir.
 En yüksek yetkiden, en düşük yetkiye doğru.
 Örneğin; //echo -a $sorttok(+ders.@ders.&ders.%ders,46,c)
 Yaptığınızda; &ders.@ders.%ders.+ders cevabını alırız.
 Gördüğünüz gibi yetki sıralaması en yüksekten, alçağa doğru olmuştur.
 a: Bu paramtre text içerisindeki verileri, alfabetik sıralamayla gösterir.
 Örneğin; //echo -a $sorttok(a c b f d l k,32,a)
 Yaptığınızda; a b c d f k l cevabını alırız. Gördüğünüz gibi alfabetik sıralam yapılmış.
 r: Bu parametre, text içerisindeki sıralamyı ters olarak gösterecektir.
 Mesela;
 //echo -a $sorttok(+ders.@ders.&ders.%ders,46,c)
 Yaptığınızda, &ders.@ders.%ders.+ders cevabını alırken;
 //echo -a $sorttok(+ders.@ders.&ders.%ders,46,cr)
 Yaptığınızda; +ders.%ders.@ders.&ders cevabını alırsınız.
 Yani r parametresi dizilim ayarlarını tersine çevirir.
 Son olarak belirtmek istiyorum, $sorttok identifier'ında cs(case sensitive) kullanabilirsiniz.($sorttokcs)
 Bildiğiniz gibi büyük/küçük harf duyarlılığı için kullanılmaktadır.
 
 
 13- $wildtok(token,wildstring,N,C)
 
 Aslında bu identifier adından'da belli olduğu gibi wilcard kullanılan bir token'dir.
 Benzerlik olarak $matchtok identifier'ı ile bir uyumluluğu vardır.
 Ama $wildtok identifier'ında wildcard(s) kullanabiliyoruz.
 Wildcards: "*" "?" karakterleridir.
 Wildcard açıklaması; Örneğin ders kelimesini ele alalım.
 * Karakterini ders kelimesinin başında kullanırsak(*ders);
 ders kelimesi ile biten kelimeler manasına gelir.
 * Karakterini ders kelimesinin sonunda kullanırsak(ders*);
 ders kelimesi ile başlıyan kelimeler manasına gelir.
 * Karakterini ders kelimesinin hem başında hem'de sonunda kullanırsak(*ders);
 içerisinde ders kelimesi geçen kelimeler manasına gelir.
 ? Karakteri ise, bilinmeyen karakter yerine kullanılır. Örneğin; der?ler gibi.
 Bu bilgilerden yola çıkarak $wildtok identifier'ı hakkında bilgi sahibi olalım.
 Token: İçerisinde wildcard kullanılmış string(veri) aranılacak text.
 Wildstring: Wildcards kullanılmış text oluyor.
 N: Sıra numarası oluyor bildiğiniz gibi.
 C: Ascii karakteri oluyor yine bidliğiniz gibi.
 Örneğin; //echo -a $wildtok(dersin sonuna geldik biliyorsunuz değilmi?,*i*,0,32) yaptığınızda; 4 cevabını alırız.
 Yani içerisinde i harfi geçen 4 adet kelime varmış bu cümlede.
 Eğer; //echo -a $wildtok(dersin sonuna geldik biliyorsunuz değilmi?,*i*,1,32) yaparsak;
 İçerisinde i harfi geçen 1. kelimeyi okutur. Bu kelimede; dersin oluyor.
 Eğer; //echo -a $wildtok(dersin sonuna geldik biliyorsunuz değilmi?,*i*,2,32) yaparsak;
 İçerisinde i harfi geçen 2. kelimeyi okutur. Bu kelimede; geldik oluyor.
 Eğer; //echo -a $wildtok(dersin sonuna geldik biliyorsunuz değilmi?,*i*,3,32) yaparsak;
 İçerisinde i harfi geçen 3. kelimeyi okutur. Bu kelimede; biliyorsunuz oluyor.
 Eğer; //echo -a $wildtok(dersin sonuna geldik biliyorsunuz değilmi?,*i*,4,32) yaparsak;
 İçerisinde i harfi geçen 4. kelimeyi okutur. Bu kelimede; değilmi? oluyor.
 Yani soldan sağa doğru okunmakta token identifier'larında bunu unutmayın.
 Son bilgi olarak; $wildtok identifier'ında cs(case sensitive) kullanabilirsiniz.
 Bildiğiniz gibi büyük/küçük harf duyarlılığı için kullanılmaktadır.($wildtokcs)
 
 
 
 Dersimiz burada sona ermiştir.
 Umarım işinize yarıyacak bilgiler verebilmişimdir.
 
                    
             
 Ölmek için doğmuştur ya insan; O yüzden her yağmur sonrası Toprak kokusunu sever. |