Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| 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.
Konu L4roXyL tarafından (22 Aralık 2008 Saat 15:42 ) değiştirilmiştir.
|