09 Ocak 2011, 19:54 | #1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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:
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:
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;
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:
-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:
-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:
Şimdi sahip olduğum bu alias ile /dify *et komutunu uygularsam filtre tanımına uyan kısma zline uygular.
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:
Ö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:
Ö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:
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:
-u Parametresi ile filtrelenen kısım numerik olarak listelenir. Veri.txt belgemin içeriği aşağıdaki gibidir:
Ö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ç:
-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!
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!
#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... | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Etiketler |
filter |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Filter | PySSyCaT | Bilgisayar Sözlüğü | 0 | 05 Şubat 2016 18:17 |