mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Help > mIRC commands - Komutlar

mIRC commands - Komutlar mIRC Help dosyası içerisindeki tüm commands/komutlar hakkında bilgi alabileceğiniz bölüm.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 30 Ağustos 2011, 10:57
Avatar Yok
 Coders 

mS Puan: 621
mS Derece: Difuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon Çalışkan
 
Üyelik tarihi: 16 Temmuz 2009
Bulunduğu yer: code talks!
Mesajlar: 83
Konular: 36
Eklentiler: 4
Alınan Teşekkür: 5
Yapılan Teşekkür: 0
Standart 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:

scripting.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 mIRCScripting.NET'de atıyor.
Sunucu sahipleri paylaşım sitesi.
Kullanımdaki Hiza: /filter -parametre Giriş Çıkış Ayıklanacak
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ı:
Scripting hobilerim arasında
mIRC Scripting'in kalbi mIRCScripting.NET'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.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ı:
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 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ı:
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 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ı:
mIRC Scripting'in kalbi mIRCScripting.NET'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 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ı:
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:
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
}
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:
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...
__________________
Koli
Alıntı ile Cevapla
Sponsored Links
Cevapla

Etiketler
filter

Seçenekler

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 Açık
Pingbacks are Açık
Refbacks are Açık



Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76