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 Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   txt de ki listeden biri ise işlem yaptırmak (https://www.ircforumlari.net/mirc-scripting-sorunlari/746330-txt-de-ki-listeden-biri-ise-islem-yaptirmak.html)

xqw 19 Nisan 2016 03:26

txt de ki listeden biri ise işlem yaptırmak
 
Kod:

  if $istok(nick1,$remove($6,],[),32) && %ognick != $remove($6,[,]) {
  sw $sockname PRIVMSG #Opers :Selam
  halt
}

Buradaki işlemi txt dosyası üzerindeki listeyi kontrol ederek yaptırmak istiyorum fakat çözemedim. Burdaki satırı nasıl düzenlemem lazım?

Kod:

if $read(yonetimust.txt,w,* $+ %ognick $+ *) != $remove($6,[,]) {
gibi çabalarım çaresiz kaldı :)

MatheuS 19 Nisan 2016 04:38

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Alıntı:

xqw Nickli Üyeden Alıntı (Mesaj 1041768162)
Kod:

  if $istok(nick1,$remove($6,],[),32) && %ognick != $remove($6,[,]) {
  sw $sockname PRIVMSG #Opers :Selam
  halt
}

Buradaki işlemi txt dosyası üzerindeki listeyi kontrol ederek yaptırmak istiyorum fakat çözemedim. Burdaki satırı nasıl düzenlemem lazım?

Kod:

if $read(yonetimust.txt,w,* $+ %ognick $+ *) != $remove($6,[,]) {
gibi çabalarım çaresiz kaldı :)

Kod:

  var %a = 1
  while %a <= $lines(yonetimust.txt) {
    if $read(yonetimust.txt,%a) isin $6 {
    ;yapmak istediğin işlem...
    }
    inc %a
  }

neyin içerisinde kulandığını bilmiyorum neye eşdeğer mi diye kontrol edeceksen kırmızı kısmı onunla değiştirmen gerek txt deki satırların birinde benzeyeni varsa bu şekilde işlemi yapacaktır.

xqw 19 Nisan 2016 12:35

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Teşekkür ederim hocam

xqw 19 Nisan 2016 18:13

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Aşağıdaki işlemleri yaptırabildim fakat bazı eksikliklerim var


Kod:

        if $gettok(%::text,1,32) == !ekle {
          var %a = 1
          while %a <= $lines(yetkili.txt) {
            if $read(yetkili.txt,%a) isin $1 {
              write nick.txt $gettok(%::text,2,32)
              sw $sockname PRIVMSG #opers $gettok(%::text,2,32) nicki listeye eklendi.
              halt
            }
            inc %a
          }
          if $read(yetkili.txt,w,$token($1,1,33)) { halt }
          sw $sockname PRIVMSG #opers $remove($gettok($1,1,33),:) bu komutu kullanmaya yetkili değilsin.
        }


        if $gettok(%::text,1,32) == !sil {
          var %a = 1
          while %a <= $lines(yetkili.txt) {
            if $read(yetkili.txt,%a) isin $1 {             
              if $read(nick.txt,w,$+($gettok(%::text,2,32),*)) { write -dl $+ $readn nick.txt
              sw coMMan PRIVMSG #opers sil $gettok(%::text,2,32)
              }
              halt
            }
            inc %a
          }
          if $read(yetkili.txt,w,$token($1,1,33)) { halt }
          sw $sockname PRIVMSG #opers $remove($gettok($1,1,33),:) bu komutu kullanmaya yetkili değilsin.
        }


Bota !ekle nick yazıldığında eğer nick ekli ise uyarı vermesi
Bota !ekle yazıldığında !ekle nick olarak uyarı vermesi,
Bota !sil yazıldığında !sil nick olarak uyarı vermesi,
Bota !sil nick yazıldığında listede yoksa uyarı vermesini istiyorum yardımcı olabilirseniz sevinirim.

SuLh 19 Nisan 2016 18:53

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Öncelikle while döngüsü yerine, $read(yetkili.txt,w,$+(*,Ayrıştırılmış değişken/tanım,*)) gibi bir kullanım işinizi görecektir.
Örnek: if $read(yetkili.txt,w,$remove($token($1,1,$asc(!)),:)) { işlenecek komutlar.. }

Yine aynı metodla if $read(nick.txt,w,Ayrıştırılmış değişken/tanım) kullanımı yapabilirsin. Eğer koşula uyarsa (yani .txt içinde mevcut ise) "bu nick ekli" şeklinde uyarı verdirebilirsin.

Feragat 19 Nisan 2016 22:18

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
dosyadan okutarak yapmayı planlıyorsan eğer, metin içinde sözcük ararsan while gerekebilir,

Yani sen $1-(cümle) içinde *text* arıyorsan yalnızca $read yeterli olmayabilir,

$read(dosya.txt,w,$1-) mantığı tek başına işe yaramaz. Cümleyi, dosya içinde aramaya kalkışırsan eşleşme olmaz

Örnek:
dosya.txt içi (wildcard ile)
*abc*
*çde*
*fgğ*

Bunları tek tek kontrol ettirmek için mecburen dosyadaki her satırı cümle içinde var mıdır diye incelemek gerekiyor, yani döngü.

Bu işi döngüsüz yapabilmek için hash table tanımlarını ve parametrelerini kullanabilirsin.
Dersler konusunda anlatımı vardı.
- Hash table da, "tabloya eklediğin filtreler cümle içinde geçiyorsa.." koşulunu döngüsüz kullanabilirsin.

Öğrenmek istiyorsan araştırıp deneme/yanılma ile çözmeni öneririm. İstemiyorsan da birisi paylaşır mutlaka onu kullanabilirsin.
Kolay gelsin.

xqw 19 Nisan 2016 23:28

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Bugün 4 - 5 saat çabaladım ama sonuca ulaşamadım işin açıkçası pes ettim.

Verdiğim satırlar üzerinden isteklerimi birisi yapabilirse çok büyük sevaba geçecek :)

SuLh 20 Nisan 2016 10:09

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Onun icin Addon parca kod isteklerine yazin, goren arkadas yonlendirme yapacaktir.
-

Yetkili.txt de sanirim mevcut kullanima erisecek nickler var, kod bu dogrultuda calisiyor, bunun icin $read in arama parametreleri is gorur.

Onun disinda kelimeyi cumle bazinda degerlendireceksen bir dongu sart evet.

xqw 20 Nisan 2016 11:07

Cevap: txt de ki listeden biri ise işlem yaptırmak
 
Teşekkür ederim ilgilenen arkadaşlara, çözdüm sakin kafayla.

iyi ifler :)


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

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