#1
|
||||
|
||||
Token identifier'ları..
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 |