Ders: Dosya ve klasor tanımları
Tarih: 04 Ekim Perşembe 2007
Yazan: L4roXyL - (Hasan AYDENİZ)
-
Evet arkadaşlar bu dersimizde, mIRC Scripting'da işimize oldukca fazla yarıyan dosya ve klasor identifier'larının ne işe yaradıklarını anlatacağız.
Dersimizi dikkatli okuyan bir arkadaşımız, ders sonunda hicbirşey bilmese bile mantığı kavramış olucak.
Neyse başlıyalım.
Identifier'lar;
Kod:
$abook(nick,N) - Prop: nick, info, email, website, picture, noteN $alias(N/filename) $crc(text|&binvar|filename,[N]) $disk(path|N) - Prop: type, free, label, size, unc, path $exists(file/dir) $file(filename) - Prop: size, ctime, mtime, atime, shortfn, longfn, attr $filtered $finddir(dir,wildcard,N,depth,@window | command) - Prop: shortfn $findfile(dir,wildcard,N,depth,@window | command) - Prop: shortfn $getdir $ini(file,topic/N,item/N) $isdir(dirname) $isfile(filename) $lines(filename) $logdir $longfn(filename) $mididir $mircdir $mircexe $mircini $mklogfn(filename) $msfile(dir,title,oktext) $nofile(filename) $nopath(filename) $read(filename, [ntswrp], [matchtext], [N]) $readn $readini(filename, [np], section, item) $sdir(dir,title) $sfile(dir,title,oktext) $shortfn(filename)
mIRC.help dosyasında, oldukca basit bir şekilde uzerinden gecilen bu identifier'ların hepsini tek-tek ve oldukca basit bir şekilde acıklıyacağım.
1: $abook(nick,N) - Prop: nick, info, email, website, picture, noteN
Bu identifier'ın ilk once kullanımı acıklıyacağım;
/help Address book yazdığınızda;
Abook hakkında bir takım bilgiler goruceksiniz.
Abook komutları.
/abook : Adres defteri'ni acıcaktır.
/abook -w IF : Adres defterinde kayıtlı olan IF nick'inin whois bilgilerini tablo icerisinde gosterecktir. Eğer nick girilmezse boş tablo acılacaktır.
/abook -n : Notify listesini tablo icerisinde acıcaktır.
/abook -c : Kontrol menusunu acıcaktır. Bu menude ignore listesinde ekli olan kişiler gozukur.
/abook -l : Renkler tablosunu acıcaktır. Bu menude renklendirilmiş, veriler ve/ya nickler gozukecektir.
İdentifier acıklaması.
Orneğin IF nick'ini ele alalım.
/abook yazarak tabloyu actık;
Nick: IF yaptık.
İsim: IRCforumlari yaptık.
Email: [email protected] yaptık.
Web site: http://www.IRCForumlari.net yaptık.
Adresi: IF.IF.net yaptık.
Not: IF IRC paylaşım plartformu. Yaptık.
Resim olarak'da IF.jpeg olarak bir resim atadık.
Şimdi $abook identifier'ını nerelerde kullanırız?
//echo -a $abook(0) Adres defterinde kac kişi olduğunu gosterir.
//echo -a $abook(1) Adres defterindeki 1. kişinin nick'ini verir.
//echo -a $abook(1).nick Adres defterindeki 1. kişinin nick'ini verir.
//echo -a $abook(1).info Adres defterindeki 1. kişinin ismini verir.
//echo -a $abook(1).email Adres defterindeki 1. kişinin e-mail adresini verir.
//echo -a $abook(1).website Adres defterindeki 1. kişinin web site adresini verir.
//echo -a $abook(1).picture Adres defterindeki 1. kişi'ye eklenen resim'in bulunduğu klasor'un ismini verir.
//echo -a $abook(1).note Adres defterindeki 1. kişiye eklenen not bilgisini verir.
Bu bilgilerden yola cıkarak basit bir kod yazalım.
Mesela; Adres defterinde kayıtlı olan nick'lerin bilgilerini sıralıyalım.
Kod:
alias adbk }
Gibi.
2: $alias(N/filename)
mIRC'deki alias'ların yuklendiği klasorun ismini/sayısını verir.
//echo -a $alias(0) mIRC'de alias'ların yuklendiği dosya sayısını verir.
//echo -a $alias(1) 1. dosya'nın yolunu verir.
3: $crc(text|&binvar|filename,[N])
Bu identifier herhangi bir dosyayı korumaya almak veya daha farklı işlemler yapmak icin kullanılır.
//echo -a $crc(varolan-dosya.unzatısı) yaptığınızda, bu dosya icin 8 karakterlik bir veri alıcaksınız.
Şimdi diyeceksinizki bu bizim ne işimize yarar?
Orneğin IF.txt diye bir dosya oluşturdunuz ve bu dosyada en ufak bir değişilkik yapılması halinde bir takım olayların olmasını istiyorsunuz?
//echo -a $crc(IF.txt) yaparsınız;
Orneğin; 1DE1AB0A 8 karakterden oluşan bir veri alırsınız.
/set %ok 1DE1AB0A şeklinde bilgiyi bir veriable'ye atasınız,
Ve script acıldığında IF.txt dosyasında bir değişiklik var ise mIRC kapansın diyorsanız;
on *:start: }
Şeklinde bir kod yazarsınız.
4: $disk(path|N) - Prop: type, free, label, size, unc, path
Bu identifier bilgisayarınızda bulunan surucu'ler, disk'ler ve cıkarılabilir aygıtlar hakkında bir takım bilgiler almanızı sağlar.
//echo -a $disk(0) Bilgisayarda bulunan disk'lerin sayısını verir.
//echo -a $disk(1) 1 olarak numaralandırılmış disk'in aktif olup olmadığını oğrenirsiniz.
$true aktif demektir.
$false deaktif demektir.
//echo -a $disk(1).type 1 olarak numaralandırılmış disk'in durumunu verir.
Fixed: Cıkarılamaz bicimlendirilmiş alan.
Removable: Cıkarılamaz bicimlendirilmemiş alan.
Cdrom: Cıkarılabilir gelişmiş okuyucu/yazıcı. (Cdrom/Dvdrom/Writer/Disk) gibi.
//echo -a $disk(1).free 1 olarak numaralandırılmış disk'in dolu olduğu alanı byte olarak verir.
//echo -a $disk(1).path 1 olarak numaralandırılmış disk ismini verir.
Bu bilgilerden yola cıkarak basit bir kod yazalım.
Orneğin; Bilgisayardaki butun disklerin isimlerini, dolu alanlarını, toplam alanlarını ve turunu gosteren bir kod.
Kod:
alias disk }
Bu arada guzel kod oldu
5: $exists(file/dir)
Bilgisayaranızdaki herhangi bir klasor'u veya dosyayı kontrol etmek icin kullanılan identifier'dır.
Orneğin; //echo -a $exists(C

Orneğin; //echo -a $exists(C:Program Files) yaparsanız $true olarak donecektir.
Orneğin; //echo -a $exists($mircdirIF.txt) Eğer mIRC ana klasorunde, IF.txt isimli bir dosya yok ise $false olarak donecektir.
6: $file(filename) - Prop: size, ctime, mtime, atime, shortfn, longfn, attr
Herhangi bir dosya hakkında detaylı bilgiler veren bir identifier'dır.
Orneklerle acıklıyalım;
//echo -a $file(aliases.ini) Aliases.ini dosyasının kac byte olduğunu verir.
//echo -a $file(aliases.ini).size Aliases.ini dosyasının kac byte olduğunu verir.
//echo -a $file(aliases.ini).ctime Aliases.ini dosyasının oluşturulma tarihini verir.
//echo -a $file(aliases.ini).mtime Aliases.ini dosyasının en son duzenlenme tarihini verir.
//echo -a $file(aliases.ini).atime Aliases.ini dosyasının en son erişim tarihini verir.
//echo -a $file(aliases.ini).shortfn Aliases.ini dosyasının hangi klasorde bulunduğunu kısa olarak gosterir.
//echo -a $file(aliases.ini).longfn Aliases.ini dosyasının hangi klasorde bulunduğunu uzun olarak gosterir.
Bu bilgilerden yola cıkarak basit bir kod yazalım.
Orneğin mIRC.exe dosyası hakkında bazı bilgiler edinelim.
Kod:
alias mircx
Gibi.
7: $filtered
/filter komutu hakkında bir identifier.
Başlı başına bir konu olduğu icin(/filter) ileriki zamanlarda anlatıcağım.
8: $finddir(dir,wildcard,N,depth,@window | command) - Prop: shortfn
Kullanım alanı oldukca geniş bir identifier'dır.
Herhangi bir klasordeki veya sabit surucudeki klasor sayısını, klasor ismini, klasor'un bulunduğu yeri gibi bilgileri oğrenebileceğiniz bir identifier'dır.
Orneğin; //echo -a $finddir($mircdir,*,0) mIRC klasorundeki, toplam klasor sayısını verir.
Orneğin; //echo -a $finddir(C:Program Files,mIRC*,0) Program Files klasorundeki, mIRC kelimesi ile başlıyan klasor sayısının toplamını verir.
Orneğin; //echo -a $finddir(C:Program Files,*mIRC*,*,echo -a $1-) Program Files klasorunde, icinde mIRC kelimesi gecen tum klasor'lerin bulunduğu yerin ismini ve son olarak sayısını verir.
Yani son ornek'ten anlıyacağınız gibi command bolumunde komut uygulatabiliyoruz.
Prop orneği; shortfn
//echo -a $finddir(C:Windows,*Windows*,1).shortfn C surucusunde windows klasorundeki, icinde windows kelimesi gecen 1. klasor'un kısa yol olarak gosterimi ile bulunduğunu yeri gosterir.
9: $findfile(dir,wildcard,N,depth,@window | command) - Prop: shortfn
Bu identifier kullanım alanı $finddir identifier'ından oldukca daha fazla geniş olan bir identifier'dır.
Bu identifier'da $finddir kullanımında olduğu gibi klasor ismi/sayısı değil, dosya ismi/sayısı hakkında bilgiler alırız.
Orneğin; //echo -a $findfile($mircdir,*,0) mIRC ana klasorunde bulunan toplam dosya sayısını verir.
Orneğin; //echo -a $findfile($mircdir,*.txt,0) mIRC ana klasorunde bulunan ve uzantısı txt olan tum dosya'ların sayısını verir.
Orneğin; //echo -a $findfile($mircdir,*.exe,0,echo -a $1-) mIRC ana klasorunde bulunan ve uzantısı exe olan tum dosyaları listeler ve son olarak sayısını verir.
Yani yukarıdaki son ornek command kısmına bir acıklama getirmiştir.
Bir ornek daha vereyim command kısmı icin;
Orneğin; //echo -a $findfile($mircdir,*.exe,1,run $1-) mIRC ana klasorunde bulunan ve uzantısı exe olan 1. sıradaki dosyayı acıcaktır.
Prop orneği: shortfn
//echo -a $findfile($mircdir,*.ico,1).shortfn mIRC ana klasorunde bulunan, uzantısı ico olan ve sıra olarak 1 numarayı alan dosyanın kısayol formatını verir.
10: $getdir
Dışarıdan gelen dosyaların(DCC) bulunduğu ve bulunacağı klasorun ismini verir.
Normalde bu klasorun adı, "download" olur.
11: $ini(file,topic/N,item/N)
Bu identifier'da oldukca kullanışlıdır.
Bunun mantığını size farklı anlatmak istiyorum.
Hemen hemen hepimiz mirc.ini dosyasını acmışızdır.
Dosyanın icerisinde;
[mIRC]
[Socks]
[about]
Gibi terim başlıkları gormuşuzdur.
İşte $ini identifier'ının kullanımında belirtilen; topic kısmı bu başlıklar oluyor.
Bu başlıkların altında bazı bilgiler vardır;
Orneğin, [mIRC] başlığını ele alalım.
Bu başlıktaki bilgiler'den ornek olarak;
user=Gercek isim.
email=E-mail adresi.
nick=Nick
anick=Ana nick.
host=irc.server.netSERVER:irc.server.netort
Gibi bilgiler yer alıyor.
İşte bu bilgilerin orneğin; host, nick, anick gibi kısımları;
$ini identifier'ında belirtilen item oluyor.
Son olarak $ini identifier'ında belirtilen N ise, numara oluyor.
Şimdi bir kac ornek verelim.
//echo -a $ini(mirc.ini,rfiles,0) mIRC.ini dosyasında, rfiles(remote'den yuklenilen dosyalar) listesinde kac adet veri bulunduğunu gosterir.
//echo -a $ini(mirc.ini,cnicks,0) mIRC.ini dosyasında, cnicks(nick renkleri) başlığında kac adet verinin bulunduğunu gosterecektir.
//echo -a $ini(mirc.ini,fonts,1) mIRC.ini dosyasında, fonts(yazılar) başlığında, ilk sıradaki verinin ismini vericektir.
Dediğim gibi gayet kullanışlı bir identifier'dır.
12: $isdir(dirname)
Buradaki dirname, directory name yani klasor ismi oluyor.
Bu identifier'da mIRC klasorunde bulunan, klasor ismi kontrol etmek icin kullanılan bir identifier'dır.
Orneğin; //echo -a $isdir(Ok) Eğer mIRC klasorunde, ok isminde bir klasor bulunmuyorsa; $false olarak donecektir.
Orneğin; //echo -a $isdir(sounds) Eğer mIRC klasorunde, sounds isminde bir klasor bulunuyorsa; $true olarak donecektir.
13: $isfile(filename)
Bu identifier'da $isdir gibi mIRC klasorunde bulunan klasor ismini kontrol etmek icin değil, dosya ismini kontrol etmek icin kullanılır.
Orneğin; //echo -a $isfile(download/IF.txt) Eğer mIRC klasorunde bulunan, download klasorunde, IF.txt isimli bir dosya varsa $true olarak donecektir.
Eğer IF.txt yok ise $false olarak donecektir.
14: $lines(filename)
Bu identifier bir dosya icindeki satır sayısını verir.
Orneğin; //echo -a $lines(IF.txt) IF.txt dosyasının satır sayısı gosterilecektir.
15: $logdir
Bu identifier /log on komutu ile tutulan kayıtların, bulunduğu/saklandığı/tutulduğu klasor ismini gostericektir.
//echo -a $logdir
16: $longfn(filename)
Bu identifier kısa olarak gosterilen bir dosyanın, bulunduğu yeri uzun şekilde dondurur.
Orneğin; C

//echo -a $longfn(C

C

Olarak donecektir.
17: $mididir
Bu identifier mIRC klasorunde ses dosyalarının bulunduğu klasor olarak tanıtılan klasor ismini vericektir.
//echo -a $mididir
18: $mircdir
Bu identifier mIRC ana klasorunun bulunduğu yeri gostericektir.
//echo -a $mircdir
19: $mircexe
Bu identifier mIRC.exe setup'ının bulunduğu klasor ismini vericektir.
//echo -a $mircexe
20: $mircini
Bu identifier mIRC ayarlarının/işlevlerinin kaydedildiği ini dosyasının bulunduğu klasorun ismini vericektir.
//echo -a $mircini
21: $mklogfn(filename)
Bu identifier icerisine yazılan dosya isminin sonuna, .log uzantısını getirecektir.
//echo -a $mklogfn(IF) IF.log olarak donecektir.
22: $msfile(dir,title,oktext)
Bu identifier kullanım alanı geniş olan bir identifier'dır.
$msfile identifier'ının icindeki;
1: dir(directory-klasor)
2: title(Acılıcak olan tablodaki başlık ismi)
3: oktext(Acılacak olan tablodaki onaylama butonunun ismi)
Orneğin; //echo -a $msfile(C:,MP3 Seciniz,MP3 sec) yaptığımızda, Başlığı, MP3 Seciniz ve onaylama butonu, MP3 sec isminde bir tanlo acılacaktır.
Ek identifier; $msfile
//echo -a $msfile(0) yaptığınızda, secilen son dosya sayısını gosterir.
//echo -a $msfile(1) yaptığınızda, secilen son dosyanın bulunduğu klasor'u gosterir.
23: $nofile(filename)
Bu identifier, filename kısmına yazılan klasor'un yolunu gosterir.
//echo -a $nofile($mircdir)
24: $nopath(filename)
Bu identifier, filename kısmına yazılan dosya yolunun son kısmını vericektir.
Orneğin; //echo -a $nopath($mircexe)
25: $read(filename, [ntswrp], [matchtext], [N])
Evet arkadaşlar sırada mIRC scripting'da en cok kullanılan identifier; $read
Parametre bilgileri;
s: Matchtext kısmına yazılan kelime ile başlıyan satırları okutacaktır.
w: Bu parametre en cok kullanılan parametredir.
Matchtext kısmına yazılan kelimeyi wildcards kullanarak ararsınız.
Orneğin; IF* : IF kelimesi ile başlıyan satırları okutur.
Orneğin; *IF : IF kelimesi ile biten satırları okutur.
Orneğin: *IF* : İcinde IF kelimesi gecen satırları okutur.
r: Matchtext kısmına yazılan kelimeyi, regex kullanarak okutmanızı sağlar.
p: Bu parametre ile okutulan satır'da "|" karakteri varolup arkasında ve onunde boşluk var ise; Yani "|" karakteri serbest ise, "|" karakterinden sonra gelen kelimeyi komut olarak uygulatır.
Orneğin; IF.txt isimli dosyanın 8. satırında, "IF | IRCForumlari" diye bir satır mevcut;
//echo -a $read(IF.txt,p,8) yaptığımız zaman; IF kelimesini okutacak, IRCforumlari kelimesini komut girdisi olarak dondurecektir.
n: Bu parametre dosya icinde okutulacak olan satırın/verinin değerlerini veya eklenilen identifier'larını olduğu gibi okutmak icin kullanılır.
Orneğin; IF.txt dosyasının 3. satırında "IRCForumlari %:" diye bir veri var. Diyelimki %: veriables değer olarak $me identifier'ına atanmış.
//echo -a $reda(IF.txt,3) Yaptığımızda; IRCforumlari nickim şeklinde cevap alırız.
Ama "n" parametresini kullanırsak;
//echo -a $read(IF.txt,n,3) yaptığımızda; "IRCforumlari %:" olarak donecektir. Yani anlıyacağınız değerler veya bicilen identifier'lar olduğu gibi cıkacaktır.
t: Bu parametre belirtilen satır boş ise bir alt satırı okutacaktır.
Zaten $read bilinen bir identifier olduğu icin bu kadar bilgi yeterli olucaktır.
Şimdi bu bilgilerden yola cıkara basit bir kod yazalım.
Orneğin, bir dosya icinde tum satırları okutmak.
Kod:
alias oku }
Gibi.
26: $readn
Bu identifier en son okutulan dosyanın, kacıncı satırını okuttuğunuzu gosterir.
//echo -a $readn
27: $readini(filename, [np], section, item)
Bu identifier ini dosyalarını okumak icin $read kadar onemli bir identifier'dır.
Yalnız $read ile aralarında oldukca fark vardır.
Buradaki filename(ini dosyası), np-parametreler, section(kısım), item(veri)
Yani şu şekilde bir tablo cizelim;
mIRC.ini dosyasında;
fonts
fstatus=Arial,712,162
Bu şekilde veriler var.
Bunları $readini kısmının icindeki verilerle gostereyim.
fonts : section(kısım)
fstatus(item/veri)=Arial,712,162
n,p parametreleri $read identifier'ındaki gibidir. Yani aynı gorevi gorecektir.
Orneğin; //echo -a $readini(mIRC.ini,mIRC,anick) mIRC.ini dosyasında kayıtlı olan, mIRC kısmındaki(section) ana-nick'i vericektir.
28: $sdir(dir,title)
Bu identifier klasor secmek/acmak icin kullanılır.
$sdir(dir,title) : dir(directory-klasor) title(başlık yazısı)
Orneğin; //echo -a $sdir(C:,Lutfen MP3'lerin bulunduğu bir klasor seciniz.)
Burada C: klasor'u acılır ve ust tarafta "Lutfen MP3'lerin bulunduğu bir klasor seciniz." metni yazar.
Eğer herhangi bir klasor secilir, onay tuşuna basılırsa; secilen dosyanın bulunduğu alan gosterilir.
Orneğin; C:WINDOWS gibi.
29: $sfile(dir,title,oktext)
Bu identifier ise, belirtilen klasor'un icindeki herhangi bir dosyayı acmak/gostermek icin kullanılır.
$sfile(dir,title,oktext) : dir(directory-klasor) title(başlık yazısı) oktext(onaylama-yazısı)
Orneğin; //echo -a $sfile($mircdir,Lutfen bir dosya seciniz.,TAMAM)
Burada ise; mIRC'in bulunduğu ana klasor acılır. Eğer herhangi bir dosya secilirse, dosyanın yolu gosterilir. Secilmezse herhangi bir işlev yapılmaz.
30: $shortfn(filename)
Bu identifier uzun olarak okunan dosya yolunu, kısa dosya yoluna cevirir.
Orneğin; $shortfn(C:windowspchealthhelpctrConfigCheckPoint)
//echo -a $shortfn(C:windowspchealthhelpctrConfigCheckPoint)
Yazdığımız zaman; C:windowspchealthhelpctrConfigCHECKP~1 olarak donecektir.
-
Umarım işinize yarıyacak bilgiler vermişimdir.
Kolay gelsin.