IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
3Beğeni(ler)
  • 3 Post By Difuzyon

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 09 Ocak 2011, 19:54   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Filter




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:

ircforumlari.txt belgesi mIRC ana dizininde var olan belgemde,içeriği aşağıdaki gibidir:

Alıntı:
Her sabah güne yeniden uyanmak ne güzel
Bilgi paylaşmak içindir.
Scripting hobilerim arasında
mIRC Scripting'in kalbi IF'de atıyor.
Sunucu sahipleri paylaşım sitesi.

Kullanımdaki Hiza: /filter -parametre Giriş Çıkış Ayıklanacak
Kullanımda Örnek : /filter -ff ircforumlari.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ı:
Scripting hobilerim arasında
mIRC Scripting'in kalbi IF'de atıyor.

2 satırın aktarıldığını görebiliyoruz.Bu iki satırda wildcard tanımına uygun "scripting" kelimelerinin varolduğunu görebiliyoruz.
Diğer satırlar süzgeçten geçemedi.ircforumlari.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 ircforumlari.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 ircforumlari.txt @deneme şeklindedir.
Siz bunu yer değiştirirseniz şayet -wf ircforumlari.txt @deneme hata verecektir.
-w (pencere) karşılığı ircforumlari.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ı:
Bilgi paylaşmak içindir.

1 satırın aktarıldığını görebiliyoruz.Yine süzgeçteki "Bilgi paylaşmak içindir." kısmına sadık kalındığını anlayabiliyoruz.
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 ircforumlari.txt dify.txt *Cenk*
ircforumlari.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 ircforumlari.txt dify.txt *paylaş*
Komutunu uygulama sonucunda dify.txt belgesi aşağıdaki şekilde oluşur:
Alıntı:
2 Belge paylaşmak içindir.
5 Sunucu sahipleri paylaşım sitesi.

-s Parametresi Status Window kısmına ile ilgili filtreleme yapar.
Ö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 ircforumlari.txt *d?f?zy?n*
#mIRCHelp kanalında(pencere) 34 ile 47 satırları arasını filtreler,tanıma uyan satırları ircforumlari.txt belgesine aktarır.


-g Parametresi filtrelenecek kısmı Regular Expression (Regex) olarak kullanmak içindir.
Örnek: /filter -ffg ircforumlari.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ı:
mIRC Scripting'in kalbi IF'de atıyor.

-z Parametresi ile pencerelerdeki filtrelenen kısımları renk özelliğiyle birlikte alır.
Ö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ı:
Ahmet
Tuncay
Mehmet
Caner
Erkan
Servet

Şimdi sahip olduğum bu alias ile /dify *et komutunu uygularsam filtre tanımına uyan kısma zline uygular.
Alıntı:
Ahmet
Mehmet
Servet

nickleri etkilenecektir.
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 temzlenmek koşuluyla) aktarılır.

-t Parametresi ile Tokenize bir uygulama sonucunda filtereleme yapar.Tokenize verileri [c s] kısmı ile belirtilir.
Coder.txt belgemin içeriği aşağıdaki gibidir:
Alıntı:
mIRC ! SeRDaR406 ! Scripting
uygulama uygulama
mIRC ! L4roXyL ! Scripting
test test test
mIRC ! CesuryureK ! Scripting
deneme deneme deneme
mIRC ! XcLusive ! Scripting
1 2 3 4 5
mIRC ! el33t ! Scripting

Örnek: /filter -fwt 1 33 Coder.txt @Difuzyon
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ı:
1 2 3 4 5
deneme deneme deneme
mIRC ! CesuryureK ! Scripting
mIRC ! el33t ! Scripting
mIRC ! L4roXyL ! Scripting
mIRC ! SeRDaR406 ! Scripting
mIRC ! XcLusive ! Scripting
test test test
uygulama uygulama

Örnek: /filter -fwt 2 33 Coder.txt @Difuzyon *!*
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ı:
mIRC ! CesuryureK ! Scripting
mIRC ! el33t ! Scripting
mIRC ! L4roXyL ! Scripting
mIRC ! SeRDaR406 ! Scripting
mIRC ! XcLusive ! Scripting

Gördüğünüz gibi ! işaretinden sonraki 2. kısmı bize alfabetik olarak verdi.2 33 kısmına dikkatinizi çekerim.



-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ı:
mIRC ! XcLusive ! Scripting
mIRC ! SeRDaR406 ! Scripting
mIRC ! L4roXyL ! Scripting
mIRC ! el33t ! Scripting
mIRC ! CesuryureK ! Scripting


-u Parametresi ile filtrelenen kısım numerik olarak listelenir.
Veri.txt belgemin içeriği aşağıdaki gibidir:
Alıntı:
deneme 1512
1 test
uygulama 648
24 filtre
aşama 168
12 numerik
sırala 3
8 tamam

Örnek: /filter -fwtug 2 32 Veri.txt @Difuzyon /\d$/
Boşluk karakterinden sonraki(2 32) kısımda, sonu rakamla biten satırları numerik olarak listeler.@difuzyon pemceremdeki sonuç:
Alıntı:
sırala 3
aşama 168
uygulama 648
deneme 1512


-l parametresi ile Giriş kısmındaki pencerenin Listbox'undaki verileri Çıkış kısmına filtreler.
Ö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:   Kodu kopyalamak için üzerine çift tıklayın!
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 }

bu tanımlara göre @Başlangıç penceresine rastgele bir Harf bir Rakam ekletiyorum,toplam 10 adet.
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:   Kodu kopyalamak için üzerine çift tıklayın!
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 }

#Kanal 'da yapılan konuşmaya göre her satır başına 100 puan verir.
!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...

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
filter


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık