İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

/dtara <disk> <file>

L4roXyL

0
İyinet Üyesi
Katılım
16 Ekim 2011
Mesajlar
124
Reaction score
2
Yazan: L4roXyL - Hasan AYDENİZ
Tarih: 2006

Evet arkadaşlar, boş zamanlarımda mIRC.hlp dosyasında İdentifier'ları karıştırırım. Denemeler yapar, küçük kodlar yazarım. Dün gece dosya ve klasör identifier'larını karıştırırken daha önce kullanması nasip olmayan $finddir identifier'ı ile karşılaştım. Ve aklıma işinize yarıyacak bir kod yazmak geldi.

Vereceğim kod'un bu kadar karmaşık olduğuna bakmayın, yani kafanız karışmasın.
Ben zaten karmaşık yazmayı seviyorum.
Zaten bu kod'un oluşmasının sebebi $finddir identifier'ı.
Diğer identifier'lar zaten bildikleriniz.
Bilmediklerinizi açıklıyacağım.
Kullanılan identifier'lar;
$disk(sürücü-adı) : Adı üstünde bilgisayarınız'daki sürücü ismini kontrol eder.
//echo -a $disk(C) yaparsanız ve C adında bir sürücünüz varsa, $true olarak dönecektir.
$qt(text) : Bu identifier'ın görevi; içerisine yazılan yazının başına ve sonuna tırnak işareti koyacaktır. Yani //echo -a $qt(Hasan) yaptığınızda; "Hasan" olarak dönecektir.
Sanırım kod'un içerisinde başka yabancı gelecek bir identifier mevcut değil.
$gettok : Token identifier'ı bol bol görmüşsünüzdür.
$chr(sayı) : Girilen ascii numarasını, ait karakter'e çevirir. Bunuda biliyorsunuz.
$strip : Yazıyı renk kalın ince vb. detaylardan arındırmak için kullanılır.
Sanırım başka bir identifier'da kullanmamışım.

Buyrun kod;

Kod:
alias dtara {
  if !$1 { echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Sürücü   ismi girmediniz. Kullanım şekli; $chr(2),/dtara sürücü   dosya-adı,$chr(2)) | halt }
  if !$disk($1) || $len($1) >= 2 { echo -s   $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),$chr(2),$qt($1),$chr(2),$chr(32),adında   bir sürücü mevcut değil.) | halt }
  if !$2 { echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Aranacak dosya ismini girmediniz.) | halt }
  if $1 && $2 { 
    write -c dosyalar.txt
    echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Tarama başlatılıyor.)
    var %. = 1,%~ = $finddir($+($1,:\),$2,0),%+ = $1,%- = $2
    if $finddir($+($1,:\),$2,0) == 0 {
      echo -s $+($chr(45),$chr(32),Taranan sürücü,$chr(58)) $+($chr(2),$qt(%+))
      echo -s $+($chr(45),$chr(32),Aranan dosya ismi,$chr(58)) $+($chr(2),$qt(%-))
      echo -s $+($chr(45),$chr(32),Bulunan dosya sayısı,$chr(58)) $+($chr(2),$qt(%~))
      echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Herhangi bir dosya bulunamadı.)
    }
    if $finddir($+($1,:\),$2,0) >= 1 {
      echo -s $+($chr(45),$chr(32),Taranan sürücü,$chr(58)) $+($chr(2),$qt(%+))
      echo -s $+($chr(45),$chr(32),Aranan dosya ismi,$chr(58)) $+($chr(2),$qt(%-))
      echo -s $+($chr(45),$chr(32),Bulunan dosya sayısı,$chr(58)) $+($chr(2),$qt(%~))
      echo -s $+($chr(45),$chr(32),Sonuçlar sıralanıyor,$chr(44),$chr(32),tarama tamamlanana kadar bekleyiniz;)
      while %. <= %~ { 
        echo -s -   $+(Sıra,$chr(58),$chr(32),$chr(2),%.,$chr(32),$chr(45),$chr(32),$chr(2),Yeri,$chr(58),$chr(32),$chr(2),$finddir($+(%+,:\),%-,%.))
        write dosyalar.txt $+(%.,%,$chr(32),$finddir($+(%+,:\),%-,%.))
        inc %.
      }
      echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Tarama tamamlandı.)
      echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Çıkan   dosyalardan herhangi birini açmak için;,$chr(2),$chr(32),/ac   sıranumarası,$chr(2),$chr(32),yazmanız yeterlidir.)
      echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Bulunan her   dosya'ya bir numara verilir,$chr(2),(Sıra: 1  gibi),$chr(2),$chr(32),Eğer  yazdığınız numara sıra numarasında yoksa  dosya açılmayacaktır.) 
    }
  }
}
alias ac {
  if !$1 { echo -s $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),Numara girmediniz.) | halt }
  if !$left($read(dosyalar.txt,w,$+($1,*)),1) { echo -s   $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(32),$chr(2),$qt($1),$chr(2),$chr(32),varolmayan   bir numara,$chr(44),$chr(32),lütfen çıkan numaralar dahiline işlev   yapınız.) | halt }
  if $1 && $left($read(dosyalar.txt,w,$+($1,*)),1) { echo -s   $+($chr(45),$chr(32),Bilgi,$chr(58),$chr(2),$chr(32),$qt($gettok($read(dosyalar.txt,w,$+($1,*)),2,37)),$chr(2),$chr(32),klasör'ü   1 saniye sonra açılacak.) | .timer 1 1 run   $strip($gettok($read(dosyalar.txt,w,$+($1,*)),2,37)) }
}
Kullanımı;

/dtara sürücü-ismi dosya-ismi
Örnek: /dtara C *mIRC* (C sürücüsünde içinde mIRC kelimesi geçen tüm klasör'leri sıralıyacaktır.)
Gördüğünüz gibi, wildcard kullanabilirsiniz.
Yani *kelime ve/ya kelime* ve/ya *kelime* şeklinde.
"Yalnız siz kalkıpta, /dtara C *a* gibi saçma bir işlev yaparsanız mIRC donacaktır."
Kod'u gerekli yerlerde kullanırsanız işinize yarıyacağını düşünüyorum.
Şimdi bir kaç örnek verelim;
/dtara C *mIRC* (C sürücüsün'de içinde mIRC kelimesi geçen tüm klasöer'ler) yapıyorum ve status penceresinde çıkan sonuçlar;

- Bilgi: Tarama başlatılıyor.
- Taranan sürücü: "C"
- Aranan dosya ismi: "*mIRC*"
- Bulunan dosya sayısı: "7"
- Sonuçlar sıralanıyor, tarama tamamlanana kadar bekleyiniz;
- Sıra: 1 - Yeri: C:\Documents and Settings\All Users\Start Menu\Programlar\Türkçe Mirc v6.21
- Sıra: 2 - Yeri: C:\Documents and Settings\L4roXyL\Application Data\mIRC
- Sıra: 3 - Yeri: C:\Documents and Settings\L4roXyL\Desktop\Kullanılmayan\Türkçe Mirc v6.2
- Sıra: 4 - Yeri: C:\Documents and Settings\L4roXyL\Desktop\Kullanılmayan\Türkçe Mirc v6.21
- Sıra: 5 - Yeri: C:\Documents and Settings\L4roXyL\Desktop\Kullanılmayan\Türkçe Mirc v6.21\mirc621
- Sıra: 6 - Yeri: C:\Documents and Settings\L4roXyL\Desktop\L4roXyL\mIRC Kodlarım
- Sıra: 7 - Yeri: C:\Documents and Settings\L4roXyL\Desktop\L4roXyL\mIRC Handcoding
- Bilgi: Tarama tamamlandı.
- Bilgi: Çıkan dosyalardan herhangi birini açmak için; /ac sıranumarası yazmanız yeterlidir.
- Bilgi: Bulunan her dosya'ya bir numara verilir(Sıra: 1 gibi) Eğer yazdığınız numara sıra numarasında yoksa dosya açılmayacaktır.
-

Birde "/ac" alias'imiz var.
Gördüğünüz gibi her çıkan sonuca bir numara verilmekte;
Siz /ac 6 komutunu uyguladığınızda, 1 saniye sonra sıra numarası 6 olan klasör'ü açıcaktır.
Umarım işinize yarar.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst