Son olarak hash table lardan bahsedeyim. Bir Hash table oluşturmak için
hmake <tabloadı> <limit>
Örneğin;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
hmake goldenex 5
Yazdığımda Goldenex Tablosu oluşturacak ve 5 'in 10 Katı kadar yani 50 Datalık kapasitesi olacaktır. Eğer oraya 5 yerine 10 yazsaydım o zaman 100 Datalık bir tablo oluşturacaktı...
Eklediğimiz tabloya Kayıt Girebilmek için ise;
hadd <tabloadı> <item> <data>
Örneğin;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
veya
Kod: Kodu kopyalamak için üzerine çift tıklayın!
şeklinde olabilir. Burada item; Data nın ID Numarasını ya da Terimini simgeliyor. Bu dataları çağırırken çok işimize yarayabilir.
Tabi Bu oluşturduğunuz tablo mirci kapatıp yeniden açtığınızda gidecektir. O yüzden bu tabloları kayıt etmemiz gerekiyor...
hsave <tabloadı> <dizin>
Kod: Kodu kopyalamak için üzerine çift tıklayın!
hsave goldenex goldenex.data
Datayı mIRC in ana dizinine yerleştirecektir..
Bunla da işimiz bitmiyor. Her açılışta bunu load etmemiz gerekiyor yani
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on 1:start: { hmake goldenex | hload goldenex goldenex.data }
gibi.
Son olarak arama ve çağırmayı anlattıktan sonra ilk bölümü bitireceğim
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Dosyayı çağırmak için hget kullanılır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
$hget(goldenex,1)
i çağırdığınızda yukarıda ki
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] i çağıracaktır. Kod içinde bunu rahatlıkla kullanabilirsiniz. Fakat Tablolara yazdırmak istediğinizde ya da echo ile görüntülemek istediğinizde
[/code]$hget(goldenex,1).data[/code] Şeklinde çağırmanız gerekiyor.
Örneğin bir datanın tablonuzda olup olmadığını öğrenmek istiyorsunuz;
Alın size basit bir karaliste
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. ;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on 1:join:#: {
;Eğer Giren kişi KaraListe Tablosunda ise kanaldan at ve yasakla.
if $hfind(karaliste,$nick,1,W) {
ban $chan $nick 2
kick $chan $nick Kara Listemdesin
}
}
Bu karalisteyi şu şekilde düzenleyebiliriz...
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on 1:start: {
;Eğer karaliste.data dosyası bilgisayarımda mevcut değilse
if !$findfile($mircdir,karaliste.data,1) {
;KaraListe Tablosu oluştur ve kayıt et
hmake karaliste 10
hsave karaliste karaliste.data
}
;Aksi taktirde Var olan dosyayı belleğe al ve kullan
else {
hmake karaliste
hload karaliste karaliste.data
}
}
alias karaliste {
if $1 == ekle && $2 {
if !$hfind(karaliste,$2,1,W) {
hadd karaliste $r(0,99999) $2
hsave karaliste karaliste.data
}
else echo Listenizde bu kişi mevcut...
}
elseif $1 == sil && $2 {
if !$hfind(karaliste,$2,1,W) {
hdel karaliste $hfind(karaliste,$2,1,W)
hsave karaliste karaliste.data
}
else echo Listenizde böyle birisi yok...
}
elseif $1 == liste {
var %:l = 1
while %:l <= $hget(karaliste,0).item {
echo -a %:l $hget(karaliste,%:l).data
inc %:l
}
}
else {
echo -a Eklemek için /karaliste ekle nick
echo -a Kaldırmak için /karaliste sil nick
echo -a Listelemek için /karaliste liste
}
}
Devam edecek
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Dipnot: Hiç birini denemedim
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.