|
| |||||||
| mIRC commands - Komutlar mIRC Help dosyası içerisindeki tüm commands/komutlar hakkında bilgi alabileceğiniz bölüm. |
![]() |
| | LinkBack | Seçenekler |
|
#1
| |||||||||||||
| |||||||||||||
|
Kullanım: /filter [-asdfkwxnpriocteubglLz] [n-n2] [c s] <infile | dialog id> <outfile | dialog id | alias> [alias] <matchtext> Filter kelimesinin Türkçe karşılığı filtrelemek,süzmek anlamına gelir. mIRC komutlarında karşımıza bir süzgeç olarak kullanabileceğimiz oldukça yararlı bir komuttur. Bir @penceredeki,belgedeki,#kanaldaki,özeldeki vb. satırları(line) bir hedefe süzgeçten geçirerek aktarma imkanı sunar. Bu aktarımı belirteceğiniz parametreler ve argümanlara bağlı kalarak belirlediğiniz hedefe taşır. Kimi zaman bir belgedeki istenmeyen satırların silinmesi,kimi zamanda bir @penceredeki verilerin tür bakımından sıralamaya alınmasını sağlar.Neler yapabileceğimizi parametreleriyle beraber çeşitli örneklerle görelim: scripting.txt belgesi mIRC ana dizininde var olan belgemde,içeriği aşağıdaki gibidir: Alıntı:
Kullanımda Örnek : /filter -ff scripting.txt dify.txt *scripting* -f = file (Yani Belgeyi ifade eder) Bir belgeden(f) diğer belgeye(f) aktarımı süzerek yapmak istedim. Örnek komut ile yukarıdaki 5 satır içerisinde "scripting" kelimesi geçen(wildcard tanımlı) satırları alarak dify.txt belgesine aktarır. mIRC ana dizininda dify.txt belgesi yoksa kendiliğinden açılır.Bunun için belge oluşturmanıza gerek yoktur. İşlem sonunda dify.txt belgemize baktığımızda,sonuç olarak: Alıntı:
Diğer satırlar süzgeçten geçemedi.scripting.txt belgemiz aynen kalırken dify.txt isimli yeni bir belgemiz oldu. Bir belgeden bir @penreceye aktarım örneği verecek olursak /window @deneme (Önce @deneme isimli bir pencere açıyorum,pencere açık olmalı ki veri aktarımı olsun) /filter -fw scripting.txt @deneme Bilgi paylaşmak içindir. (Ardından filtreleme işlemi yapıyorum) -w = window (Yani @pencereyi ifade eder) Komuttaki hiza dikkatinizi çekmiştir -fw scripting.txt @deneme şeklindedir. Siz bunu yer değiştirirseniz şayet -wf scripting.txt @deneme hata verecektir. -w (pencere) karşılığı scripting.txt , -f(belge) karşılığı @deneme olarak algılayacağından işlem hatalıdır. Bu uyarılara dikkat çektikten sonra uyguladığımız komut sonucunda @deneme penceremize; Alıntı:
Bu örnekte wildcard kullanmadım.Bu nedenle satırın tam karşılığını filtreledi. Yukarıda vermiş olduğum iki örneğe bakarak belge ve pencere arası geçişleri filtreleyebilirsiniz.(-ff , -wf , -ww , -fw) Parametreler : -x Parametresi olumsuzluk(içerisinde geçmeyen) ifade eder. Örnek: /filter -xff scripting.txt dify.txt *Cenk* scripting.txt belgesi içerisinde Cenk kelimesi geçmeyen satırları filtreler. -n Parametresi uyan tanımları satır numaralarıyla birlikte aktarır. Örnek: /filter -nff scripting.txt dify.txt *paylaş* Komutunu uygulama sonucunda dify.txt belgesi aşağıdaki şekilde oluşur: Alıntı:
Örnek: /filter -ws CesuryureK * Özelimdeki CesuryureK nickiyle(bu da bir penceredir) yaptığım tüm satırları Status Window'da gösterir. Örnek: /filter -sf Hatamesajları.txt *Unknow* Status Window kısmında içerisinde Unknow geçen satırları alır Hatamesajları.txt belgesine aktarır. -d Parametresi Messages penceresine aktarır. Örnek: /filter -wd #mIRCHelp * #mIRCHelp kanalındaki(bu da bir penceredir) tüm satırları Messages(/dqwindow [on|show] komutu ile açılan penceredir) penceresine aktarır. -p Parametresi ile filtreleme sonrası @pencereye aktarımda çok uzun satırları sığdırmaya yarar. -r Parametresi belirtilen satır aralığında filtreleme yapar. Örnek: /filter -wfr 34-47 #mIRCHelp scripting.txt *d?f?zy?n* #mIRCHelp kanalında(pencere) 34 ile 47 satırları arasını filtreler,tanıma uyan satırları scripting.txt belgesine aktarır. -g Parametresi filtrelenecek kısmı Regular Expression (Regex) olarak kullanmak içindir. Örnek: /filter -ffg scripting.txt dify.txt /'\w+\s\w+\s[A-Z]+'/ Belirtilen string tanımı sonucu filtrelenen kısım dify.txt belgesine aktarılır: Alıntı:
Örnek: /filter -swz @difuzyon *Ping Tekrarı* (Status penceremde Ping Tekrarı yanıtlarına ait mesajları renkleriyle birlikte @difuzyon penceresine aktarır) -k Parametresi Çıkış belgesine göre bir alias düzenlemenize imkan tanır.Aliasdan sonraki kısmı alias tanımına göre filtreler. Örnek: /alias dify $iif($isid,zline $1 +0 Dışarı,filter -fk karaliste.txt dify $1) Bu komut ile dify aliasım oldu karaliste.txt içeriğide aşağıdaki gibidir: Alıntı:
Alıntı:
Gördüğünüz gibi bu parametre doğru yerlerde kullanıldığı takdirde eşsiz bir kolaylık sağlar. -i Parametresi ile Giriş kısmına belirtilen Dialog ID numarasındaki veriler filtrelenir. Örnek: /filter -if Generator 8 dify.txt *code* Generator isimli dialogun 8 nolu ID kısmında içinde code kelimesi geçen satırları dify.txt belgesine aktarır. -o Parametresi ile Çıkış kısmında belirtilen Dialog ID numarasına veriler filtrelenir. Örnek: /filter -fox dify.txt ASCII 4 *test* dify.txt belgesinde içinde test kelimesi geçmeyen satırlar ASCII isimli dialogun 4 nolu ID numarasına aktarılır. Gördüğünüz gibi bir Dialogun List kısmına bir belgeyi aktarmak filter ile oldukça kolay. Bir while,loop vb. gibi döngü işlemleri gerektirmeden sizlerde kullanabilirsiniz. -c Parametresi ile filtrelenen kısımdan önce hedef temizlenir,ardından aktarım gerçekleşir. Örnek: /filter -cfg dify.txt @Difuzyon \d Regular Expression tanımına uyan kısımlar @Difuzyon penceresine (öncesinde @pencere temizlenmek koşuluyla) aktarılır. -t Parametresi ile Tokenize bir uygulama sonucunda filtreleme yapar.Tokenize verileri [c s] kısmı ile belirtilir. Coder.txt belgemin içeriği aşağıdaki gibidir: Alıntı:
Komutunu uyguladığımda Coder.txt belgesinde 33 ascii karakterine denk gelen ! işaretinin 1. kısmını filtreler. Yani $gettok(veri!text,1,33) tokenize işlemine göre veri kısmını filtreler.Bu filtreleme işlemini yaparken alfabetik sıralamaya uygun hareket eder.İşlem sonucunda @Difuzyon pencerem aşağıdaki gibi olur: Alıntı:
Bu örnek sonucunda (dikkat ederseniz *!* filtre tanımı ekledim,içinde ! geçen satırları alacak) yine alfabetik dizgi verecektir. İşlem sonucunda @Difuzyon pencerem: Alıntı:
-e Parametresi ile filtrelenen kısmı alfabetik olarak Z'den.. A'ya ters sistemde listeler. Örnek: /filter -fwte 2 33 Coder.txt @Difuzyon *!* İşlem sonucundan @Difuzyon pencerem aşağıdaki gibidir: Alıntı:
Veri.txt belgemin içeriği aşağıdaki gibidir: Alıntı:
Boşluk karakterinden sonraki(2 32) kısımda, sonu rakamla biten satırları numerik olarak listeler.@difuzyon pemceremdeki sonuç: Alıntı:
Örnek: /filter -wfl #mIRCHelp nickler.txt *girl* #mIRCHelp kanalının Listbox'unda içinde girl kelimesi geçen nickleri nickler.txt belgesine aktarır. -L parametresi ile Çıkış yapılacak pencerenin Listbox'una verileri filtreler. Önce: /window -l15 @YeniKanal komutu ile Listbox'lu bir pencere açıyorum, Sonra:/filter -fwL nickler.txt @YeniKanal *34* Komutu ile nickler.txt belgesinin içinde 34 rakamı geçenleri @YeniKanal'ın Listbox'una aktarıyorum. -a Parametresi ile bir alias oluşturulur ve bu alias türe göre sıralar.Alias tanımında $1 ve $2 kullanılır,tür kısmı burda belirtilir. Türe göre sıralama alias içinde 1 , 0 ,-1 olarak değerlendirilmelidir.Bir örnek vermek gerekirse: Kod: Kod: alias dizgi {
return $iif($1 < $2, 1, $iif($1 == $2,0,-1))
}
alias uygula {
window -n @Başlangıç
var %i = 1
while (%i <= 10) {
aline @Başlangıç $rand(a,z) $rand(1,9)
inc %i
}
window -n @Sonuç
filter -caww @Başlangıç @Sonuç dizgi
} dizgi kısmında alt sıra $2, üst sıradan $1 büyükse 1 değeri alacak.Eşitse 0,küçükse -1 değer hizası alacak. 1 0 -1 Hizası gibi algılayacaktır.Bu tanım alias içerisinde belirtilmelidir. Filter komutunun $filtered identifieri mevcuttur.Bu identifier filtre tanımına uyan satır sayısını vermektedir. Tüm bu anlatılanlardan sonra konuyla alakalı örnek bir kod sunayım: Kod: on *:text:*:#Kanal:{
if $1 == !puan {
if ($2 == list) { top10 | goto t0p10 }
elseif !$read(puan.txt,w,$+(*,$2,*)) { msg $chan $2 puan listesinde yok }
elseif ($2 == $me) { msg $chan Beni boşver,kendi puanına bak | goto t0p10 }
elseif ($2 == $nick && $read(puan.txt,w,$+(*,$2,*))) { msg $chan $read(puan.txt,$readn) puanı var | goto t0p10 }
}
if !$read(puan.txt,w,$+(*,$nick,*)) { write puan.txt $nick 100 | halt }
else {
var %dify $readn
var %yeah = $calc($token($read(puan.txt,%dify),2,32) +100)
write $+(-l,%dify) puan.txt $nick %yeah
if %yeah == 1000 { mode $chan +v $nick | msg $chan Tebrikler $nick 1.000 puanın oldu }
}
:t0p10
}
alias top10 {
var %cnk = @dify, %hit = 10, %e = puan.txt, %top10 = 1
window -hn %cnk
filter -fwcteu 2 32 %e %cnk
msg #Kanal (Top 10) Puan listesi:
while %top10 <= %hit { msg #Kanal $ord(%top10) $line(%cnk,%top10) | inc %top10 }
window -c %cnk
} !puan nick komutuyla nickin puanını görebilirsiniz. !puan list komutuyla ilk 10'a giren nicklerin puan tablosunu görebilirsiniz. Hoşca paylaşımlar dilerim... |
| Sponsored Links |
![]() |
| Etiketler |
| filter |
| |