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

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Dersleri (https://www.ircforumlari.net/mirc-scripting-dersleri/)
-   -   Loadbuf (https://www.ircforumlari.net/mirc-scripting-dersleri/375240-loadbuf.html)

Difuzyon 03 Ocak 2011 17:34

Loadbuf
 
Kullanım: /loadbuf [lines] [-apirslecNnomt<topic>] <window | dialog id> <filename>

Var olan bir belgedeki satırları(tümünü veya bir kısmını) bir pencereye aktarmak için kullanılan komuttur.
Bu pencere #kanal penceresi, @custom , query penceresi , aktif ekran ,dialog id(No) vb. olabiliyor.
İşlevsellik bakımından bazı durumların (While , Goto loop vb) alternatifi olarak işimizi epeyce
kolaylaştırabiliyor.Aynı zamanda önizleme açısından alternatif bir komut olarak karşımıza çıkıyor.

Önce bir @pencere açalım ve mIRC ana dizininde bulunan Nickler.txt belgesini bu @pencere'ye yazdıralım:

/window @dify (Önce bir @pencere açıyoruz)
/loadbuf @dify Nickler.txt (Ardından @pencere'ye Nickler.txt belgesini aktarıyoruz)

Her iki komutu birleştirip tek satır halinde yazmak istersek: //window @dify | loadbuf @dify Nickler.txt

@dify penceresine baktığımda Nickler.txt belgesindeki tüm satırların aktarıldığını görebiliyorum.
Dilerseniz belirteceğiniz satır sayısı kadar aktarım yapabilirsiniz.

//window @dify | loadbuf 5 @dify Nickler.txt (İlk 5 satır aktarılır)
//window @dify | loadbuf 10-20 @dify Nickler.txt (10. satırdan 20. satır aralığına kadar olan kısım aktarılır)

Parametreler:

-a Aktif ekranda gösterilmesini sağlar.
Örnek: /loadbuf 5-10 -a Nickler.txt (5.satır ile 10.satır aralığını aktarır)

-p Belge içindeki bazı satırlar çok uzun ise gösterilen ekrana bunun sığmasını sağlar.

-i Sığmayan uzun satırları paragraf başı hizasına getirir.-p parametresi ile birlikte kullanılır.

-r Belgeyi aktarmadan önce ekranı temizler.
Örnek: /loadbuf -r #mIRCHelp Nickler.txt (Önce kanal ekranını temizler sonra belgeyi aktarır,bu olay sadece kendi ekranımızda olur)

-s Belgeyi Status Window'a aktarır.

-l Aktarım yapılacak olan @pencere'de listbox varsa(Nicklist gibi algılayabilirsiniz) belgeyi listboxa aktarır
Örnek: /window -l20 @dify (20 karakter uzunluğunda Listbox'u olan @dify penceresini açar)
/loadbuf -l @dify Nickler.txt (Aktarımıda yaptıktan sonra Hayalet bir kanal gibi oldu,dimi :) )

-e Bu parametre ile belge içindeki %variable ve $identifier karşılıklarını değerine dönüştürüp aktarır.
Örneğin,Nickler.txt belgesindeki 8. satıda %Cenk yazıldığını farzedelim.Variables kısmında %Cenk karşılığı varsa karşılığını aktarır.

-cN Renk vermek için kullanılan parametredir.N yerine mIRC renk listesinde(Alt+k) bulunan bir rakam yazıyoruz.
Örnek: /loadbuf 2-4 -sc10 Nickler.txt (Status Window'a 2.ile 4.satır aralığını 10nolu "Turkuaz" renkte aktarır)

-n Parametresiyle aktarılan ekranda log tutulması sağlanır.

-m İle de tutulan loglamada zaman "$timestamp" deaktif edilir.-n parametresiyle birlikte kullanılır.

-o Parametresiyle belirtilen Dialog ve Id numarasına veriler aktarılır.
Örnek: /loadbuf -o Cenk 11 Nickler.txt (Cenk ismindeki dialogun 11 nolu Id'sine belgeyi aktarır.11 numaranın dialogunuzdaki list kısmı
olabileceğini fikir olarak kurgulayabilirsiniz.)

-t Parametresiyle .ini uzantılı dosyalarınızdaki topiclere(başlıklara) göre aktarım yapabilirsiniz.
Örnek: /loadbuf -atPorts mIRC.ini (mIRC.ini dosyanızdaki Ports topicini(başlığını aktif ekrana aktarır)


Değişik dosya isimlerinde,dialoglarda,window pencerelerinde aktarımları kendinize göre düzenleyebilirsiniz.

Hoşca paylaşımlar dilerim...

DeLiKaNLi 04 Ocak 2011 03:38

Cevap: Loadbuf
 
Selam Aleikum kardes. Bunu okuduktan sonra iki uc deneme yaparak anladim olayi tesekkur ederim sahsen. Yalniz benim aklima birsey geldi.. bu yontemi kullanalarak, kanalda /list cektigimizde bir pencere acip istedigimiz gibi ayarladigimiz renkler ile istedigimiz verileri cikartabilme islemini nasil yapabiliriz? Bana en azindan yol gosterirsen dewamini getirmeye calisirim Allah'in izniyle..

Difuzyon 04 Ocak 2011 18:21

Cevap: Loadbuf
 
Böylesi bir fikrin oluşması adına sevindiğimi belirtmeliyim,ilginize teşekkür ederim.Güzel bir istekle karşı karşıyayız, /list komutunun karşılığını farklı bir bakış açısıyla görmek adına ben kısa bir çalışma hazırladım.Kod içerinde hangi argümanları kullanmamız gerektiğini açıklayıcı bir şekilde anlattım.Dilerim yeni fikirler oluşturmamıza vesile olur.

Kod:

alias liste {
  ;Liste isminde bir kısayol (alias) oluşturdum.
  ;Önce varolan belgeleri her ihtimale karşı siliyorum.

  .remove kanallar.txt
  .remove kanalbilgi.txt
  ;Bir değişken lazım olacak ola ki normal /list çektiğimde bu kodla karışmasın
  ;bu değişkeni atamazsam /list komutunu kendi başına kullanmamda birtakım sıkıntılar meydana gelebilir.

  set -e %dfzyn open
  ;/list komutunu uygula.
  list
}
raw 321:*:{
  ;/list komutu ile alakalı 321 rawı
  ;Eğer değişkenimiz varsa gelen 321 rawında "Kanallar listeleniyor..." yazısını durdur

  if %dfzyn {
    haltdef
  }
}
raw 322:*:{
  ;/list komutu ile alakalı 322 rawı
  ;Eğer değişken mevcutsa

  if %dfzyn {
  ;"Channels List'e aktarımı durdur.
    haltdef
    ; $2 burda #kanal oluyor.Bunu rastgele bir renk seçerek belgeye yazdırıyoruz.
    write kanallar.txt $+(,$r(1,14),$2)
    ;Listbox'ta #kanal tıkladığımızda bize lazım olacak $2 değerini yine yazdırıyoruz ki çağrışımı burdan alacak.
    ;Aralardaki $lf ile her bilgiyi yeni satıra aktarıyorum. $3 Kullanıcı sayısı , $4 Mode , $5 ve sonrası topic kısmı.

    write kanalbilgi.txt Kanal: $2 $lf Kullanıcı Sayısı: $3 $lf Kanal Modeleri: $4 $lf Kanal Topici: $5-
  }
}
raw 323:*:{
  ;/list komutu ile alakalı 323 rawı
  ;Eğer değişken mevcutsa

  if %dfzyn {
  ;"Kanallar listelendi" yazısını durdur.
    haltdef
    ;"Channels List" penceresini kapa
    window -c "Channels List"
    ; 28 haneli Listbox'u olan ve Tahoma 12 font karakterinde olan @Kanallar isimli pencereyi oluştur
    window -al18 @Kanallar Tahoma 12
    ; Kanallar.txt'ye rastgele renklerle aktarılan kanal isimlerini Listbox'a dök.
    loadbuf -l @Kanallar kanallar.txt
    ;Belirtilen metinleri @Kanallar penceresine metin olarak sun,bilgilendirme mahiyetinde.
    aline @Kanallar 4*1 Tüm kanallar listelendi.
    aline @Kanallar 4*1 Kanallar hakkında bilgi almak için listeden kanal seçiniz...
    ;Değişkeni artık siliyoruz.İşlemimiz bitti.
    unset %dfzyn
  }
}
menu @Kanallar {
  ;@Kanallar penceresinin Listbox'unda sol click yapıldığı takdirde
  lbclick:{
    ;Renkli #kanal ismini renklerinden arındırıp yeni bir değişkene #kanal ismini yalın haliyle atıyorum.
    set -e %dify $strip($fline(@Kanallar,*,$sline(@Kanallar,1).ln,1).text)
    ;Her satır için bir ayıraç kullanalım.
    aline @Kanallar $str(_,40)
    ;Eğer Listbox'ta sol click ile tıkladığım #kanal ismi biraz önce kanalbilgi.txt belgesine aktardığım ($2,$3,$4,$5-)
    ;verilerden #kanal ile uyuşuyorsa

    if $read(kanalbilgi.txt,r,$+(\x2Kanal.\x2\s,%dify,\s)) {
      ;Uyuşan veri satırından başla ve 3 satır daha bilgi ($3,$4,$5-) içeren kısmını uzun satırları sığdırarak @Kanallar penceresine dök.
      loadbuf $+($readn,-,$calc($readn +3)) -pi @Kanallar Kanalbilgi.txt
    }
  }
}

on *:close:@Kanallar:{
  ;Eğer @Kanallar penceresini kapatırsam ilgili belgeleri ve atadığım değişkeni sil.
  .remove kanallar.txt | .remove kanalbilgi.txt | unset %dify
}

Kodu scriptinizin remote bölümüne olduğu gibi ekliyebilirsiniz,herhangi bir yeri silmenize gerek yoktur.

Kullanım: /liste


Görünüm:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

DeLiKaNLi 07 Ocak 2011 10:55

Cevap: Loadbuf
 
Ellerine saglik kardes ekledim scriptime takir takir calisior cokta guzel olmus. Izninle Tacomayi Arial ve tek tik yerine dclick yaptim. Ama rastgele renk yerine kendim belirledigim renkleri yapmayi denedim beceremedim :) Ne yapmam gerekior bu satira ki istegim gerceklessin? "write kanallar.txt $+(,$r(1,14),$2)"

Difuzyon 07 Ocak 2011 13:00

Cevap: Loadbuf
 
Kanal İsmi kısmında istemiş olduğunuz rengi sorgularla (if-else) belirleyebilirsiniz:
Örnek:
;eğer Kanal ismi($2) içerisinde "help" kelimesi geçiyorsa 4 (Kırmızı) | geçmiyorsa 12 (Mavi)
if help isin $2 { write kanallar.txt $+(,4,$2) } | else { write kanallar.txt $+(,12,$2) }

Örnek:
;Eğer kullanıcı sayısı($3) 10 kişiden fazlaysa 3 (Yeşil) | değilse 8 (Sarı)
if $3 > 10 { write kanallar.txt $+(,3,$2) } | else { write kanallar.txt $+(,8,$2) }

Örnek:
;Eğer Kanal Modeleri ($4) içinde R varsa 5 (Kahverengi) | yoksa 7 (Turuncu)
if R isin $4 { write kanallar.txt $+(,5,$2) | else { write kanallar.txt $+(,7,$2) }

Yukarıdaki örneklerden bir tanesini isteğinize göre düzenleyip seçenek olarak kullanabilirsiniz.

DeLiKaNLi 10 Ocak 2011 12:13

Cevap: Loadbuf
 
Kardes ozur dilerim cok olucam yine ama biyerde takildim yine yardimin makbule gecicek simdiden tesekkur ederim Allah razi olsun. Ben asagidaki gibi ayarladim. Yapmak istedigim sey ise bu kanallarin renklerini ben belirttim geriye kanal #oyun,#kelime,#islam vs kanallarini random olarak renk vermesini istiorum.. nasil yapabilirim ?

if radyo isin $2 { write kanallar.txt $+(,13,$2) } | else { haltdef }
if sohbet isin $2 { write kanallar.txt $+(,4,$2) } | else { haltdef }
if opers isin $2 { write kanallar.txt $+(,12,$2) } | else { haltdef }
if help isin $2 { write kanallar.txt $+(,3,$2) } | else { haltdef }
if ops isin $2 { write kanallar.txt $+(,12,$2) } | else { haltdef }
if dj isin $2 { write kanallar.txt $+(,11,$2) } | else { haltdef }

Difuzyon 10 Ocak 2011 12:32

Cevap: Loadbuf
 
Rica ederim,hiç sorun değil.Takıldığınız her noktayı belirtmeniz en doğal hakkınızdır.
İsteğinize gelince aşağıdaki kısım 3 kanal için random renk belirler:

if $istok(#oyun #kelime #islam,$2,32) { write kanallar.txt $+(,$r(1,14),$2) }


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 16:59.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk