Tekil Mesaj gösterimi
Alt 29 Ekim 2007, 19:20   #1
Çevrimdışı
L4roXyL
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet