![]() |
Merak ettim .has .db Selam. Bazı badnick rumuzları .has bazıları da .db uzantılı dosyalara eklendigini biliyorum. .has a eklenenler rumuzlar data numarası ile ekleniyor .db e eklenenler de yine aynı sekilde data no ilemi ekleme yapıyor acaba? Eger db uzantısın da data no'yu eklemiyorsa mantıken bu uzantıya sahip dosyaya eklemek daha mantıklı geliyor bana. Bu iki uzantılı dosya arasında bir fark varmı? Varsa nedir merak ettim. |
Cevap: Merak ettim .has .db Dosya seçimi ve içeriği eklentiyi kodlayan kişinin tercihine kalmış bir olay. Yani .has .db olmasının mirc scripting için pek önemi olmuyor. |
Cevap: Merak ettim .has .db Anladım. Bu hash korumasının en kötü yanı eklenen rumuzun data numaralarınıda ekliyor olması sanırım. 20854843848 bb50274d20b2c99c05d gibi dataları eklemese daha iyi olurmuş Çünkü dosyaya 100 rumuz eklesen bu sayı 200 oluyor data yüzünden. Yani demek istedigim extra fazlalık. Bilgilendirme için tşkler. |
Cevap: Merak ettim .has .db Alıntı:
Rakamların anlamı şöyle örnek vereyim mesela 123 olarak bir item verisi var sen bu item verisine 1 tane veri ekleyebilirsin o yüzden benzersiz olması gerekiyor. Mantığı şöyledir hash tabloların [Tablo İsmi] Item | Data Tablo ismi Liste olsun Item AdSoyad olsun Data İsmin Soyismin olsun /hadd -sm Liste AdSoyad İsmin Soyismin buradaki -s geri bildirim vermeye yarıyor -m ise tablo yoksa tablo oluşturuyor. Bu işlemi yaptıktan sonra tabloya veri eklenir. //echo -a $hget(liste,adsoyad) Yaptığında data kısmını görürsün mesela tekrar aynı iteme veri eklemeye çalışınca veriyi ekler ama önceki verinin üzerine ekler yani tabloda yine 1 tane veri olur 2. veri olarak eklenmez. Ek olarak txt okuma mantığı ile hash tablosunun okuma mantığı farklıdır - txt dosyadan okumak için mirc önce dosyayı açıyor okuyor tekrar kapatıyor. - hash tabloda ise veriler belleğe kaydedilir mirc bellekten okur. O yüzden çok hızlıdır. Açıklama yapma nedenim extra fazlalık durumunun söz konusu olmadığını belirtmek için. Detaylı anlatım: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |
Cevap: Merak ettim .has .db Alıntı:
Atılan nick ve maskı gösteriyor fakat data numarasını göstertemedim bi türlü. Su sekilde ekledim $hget(badnick,0).item yapınca listeyi gösteriyor sadece Fakat sıfırı 1 yapınca ilk data numarasını gösterebiliyorum Oysa her atılan rumuzun kendine ait data numarasını göstermesi lazım degil mi nerde yanlıs yapıyorum anlamadım |
Cevap: Merak ettim .has .db Alıntı:
tabiki var $hget(badnick,0).item bu kısmı $hget(badnick,1).item yapınca 1. item, $hget(badnick,1).data yapınca 1. data verisine ulaşırsın ne yapmak istediğini anlamadım ama anladığım şekilde cevap verdim. |
Cevap: Merak ettim .has .db Alıntı:
Atılan rumuz ahmet - data : numarası ????? Burdaki soru isaretinin oldugu yere atılan rumuzun data numarasınıda yansıtmaya calısıyorum. Dediginiz gibi $hget(badnick,1).data yapınca has dosyasındaki ilk data numarasını yansıtıyor fakat diger atılanlan rumuzların kendine ait data numaralarını yansıtmıyor. 1 yazan yer sabit mi kalmalı yoksa? |
Cevap: Merak ettim .has .db Alıntı:
Sen kodu at buraya ona göre ne yapman gerektiğini söyleyeyim. |
Cevap: Merak ettim .has .db Alıntı:
on *:start:{ $iif(!$isfile(badnick.tprk),.write badnick.tprk) | .hmake badnick 100 | .hload badnick badnick.tprk } on *:join:*: { if $chan == #sohbet { if $hfind(badnick,$nick,1,W).data { if $read(muafnick.txt,w,$nick) { msg #geveze35 Muaf nick girişi; $nick | return } kick # $nick 1Nick değiştirip (/nick yeninick) tekrar kanala giriş yapabilirsiniz.. mode $kanal +b $nick if !$hget(bdnck,$nick) { .hinc -msu20 bdnck $nick msg # $chan kanalında [ JOIN ] $nick nicki badnick olarak tespit edildi. $+([,$chr(32),$hget(badnick,$hfind(badnick,$nick,1,W). data),$chr(32),]) } } } } on *:nick:{ if $hfind(badnick,$newnick,1,W).data { if $read(muafnick.txt,w,$newnick) { msg # Muaf nick değişimi; $nick >> $newnick | return } if $read(muafnick.txt,w,$nick) { msg # Muaf nick değişimi; $nick >> $newnick | return } msg $bilgiKanal [ NICK ] $newnick nicki badnick olarak tespit edildi. $+([,$chr(32),$hget(badnick,$hfind(badnick,$newnick,1, W).data),$chr(32),]) var %:c $regsubex($str(-,$comchan($newnick,0)),/./g, $iif($regex($nick($comchan($newnick,\n),$me).pnick ,/(%|@|&|~\.)/i),$comchan($newnick,\n) $chr(32))) var %c = 1 | while %c <= $token(%:c,0,32) { mode $token(%:c,%c,32) +b $newnick | kick $token(%:c,%c,32) $newnick 1Nick değiştirip (/nick yeninick) tekrar kanala giriş yapabilirsiniz.. inc %c } } } on *:text:*:#: { if !$regex($chan,/^( $+ $komutKanal $+ )$/i) { halt } if ($regex($nick(#,$nick).pnick,[&.~.@])) { if $regex($1,/^[!\.]badnick$/Si) { if $regex($2,/^ekle$/Si) { if (!$3) { msg # Lütfen nick belirtiniz | return } if $hfind(badnick,$strip($3),0,W).data { msg # Eklemeye çalıştığınız badnick zaten $+([,$chr(32),$hget(badnick,$hfind(badnick,$strip($3), 1,W).data),$chr(32),]) maskesi ile uyuşmakta. | return } if $read(muafnick.txt,w,$3) { msg # 2Bu kişi muaf nick listemde yer almakta. | return } var %n = $left($calc($ctime * $rand(1000,9999)),7) .hadd -m badnick %n $strip($3) .hsave -o badnick badnick.tprk msg # $strip($3) Badnick listesine eklendi. } if $regex($2,/^s[ıiİ]l$/Si) { if (!$3) { msg # Lütfen nick belirtiniz | return } if !$hfind(badnick,$strip($3),0,W).data { msg # Bad nick listesinde bulunmamaktadir. | return } .hdel -m badnick $hfind(badnick,$strip($3),1,W).data .hsave -o badnick badnick.tprk msg # $strip($3) Badnick listesinden silindi. } if $regex($2,/^tara$/Si) { if (!$3) { msg # Lütfen nick belirtiniz | return } if $read(muafnick.txt,w,$3) { msg # 2Bu kişi muaf nick listemde yer almakta. | return } if !$hfind(badnick,$strip($3),0,W).data { msg # Badnick listem'de $strip($3) ait bir mask yok. | return } msg # Nick: $strip($3) - 4 Mask: $+([,$chr(32),$hget(badnick,$hfind(badnick,$strip($3), 1,W).data),$chr(32),]) } if ($2 == muaf) { if (!$3) { msg # Lütfen nick belirtiniz | return } if $read(muafnick.txt,w,$3) { msg # $3 muaf listesinden silindi. | write $+(-dl,$read(muafnick.txt,w,$3)) muafnick.txt | return } msg # $3 muaf nick listesine eklendi. write muafnick.txt $3 } if $regex($2,/^l[ıiİ]st$/Si) { if ($hget(badnick,0).data == 0) { msg # Badnick listesi boş. | return } msg # Badnick listesi msg # - var %i = 1 | while (%i <= $hget(badnick,0).data) { msg # %i $+ .4) [ $hget(badnick,%i).data ] | inc %i } msg # - msg # Badnick listesi sonu } } if $regex($1,/^[!\.]tara$/Si) { if !$regex($2,/^#/Si) { msg # Lütfen #kanal belirtiniz | return } if !$chan($2) { msg # $2 kanal'ında bulunmuyorum | return } var %:tara = 1 | while %:tara <= $nick($2,0) { if $hfind(badnick,$nick($2,%:tara),1,W).data && !$read(muafnick.txt,w,$nick($2,%:tara)) { msg # [ TARAMA ] $nick($2,%:tara) nicki badnick olarak tespit edildi. $+([,$chr(32),$hget(badnick,$hfind(badnick,$nick($2,%: tara),1,W).data),$chr(32),]) mode $2 +b $nick($2,%:tara) | kick $2 $nick($2,%:tara) 4 Badnick! 1Nick değiştirip(/nick yeninick) tekrar kanala giriş yapabilirsiniz.. } inc %:tara } msg # Toplam $nick($2,0) kişi için, $hget(badnick,0).data adet mask taraması yapıldı. } } } |
Cevap: Merak ettim .has .db Alıntı:
$hget(badnick,$hfind(badnick,$nick,1,W).data) Bu kısmı $hfind(badnick,$nick,1,W).data olarak kullanman gerek. |
| Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:50. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk