Konu: MüsteriServ
Tekil Mesaj gösterimi
Alt 11 Nisan 2007, 01:33   #12
Çevrimdışı
Brain
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: MüsteriServ




PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# Giren kullanicilar
bind join - * user_girdi
proc user_girdi 
{nick uhost hand channel} {
    
fyaz $nick scripts/kullanicilar.txt
}

# Cikan kullanicilar
bind join - * user_cikti

proc user_cikti 
{nick uhost hand channel msg} {
    
fsil $nick scripts/kullanicilar.txt
}

# nick degistirenler icin
bind nick - * yeni_nick
proc yeni_nick 
{nick uhost handle channel newnick} {
    
fsil $nick scripts/kullanicilar.txt
    fyaz $newnick scripts
/kullanicilar.txt
}
# Ayrilma mesajlari part bind'e yonlendirmekte sakinca yok
bind sign - * user_cikti

# kick uygulamasi
bind kick - * user_kick
proc user_kick 
{nick host hand chan target reason} {
    
fsil $nick scripts/kullanicilar.txt
}

# fyaz <veri> <dosya adi>
# Yukaridaki gibi kullanilir ve belirtilen dosyaya belirtilen verinin yazilmasini saglar
# ornek: fwrite aCoustiC kullanicilar.txt
proc fyaz {text dosya} {
        
set datafile $dosya
        set text 
[split $text]
        
set ahand [lindex $text 0]

        
# veri kontrolu
        
if {$ahand == ""} {
                
puthelp "Hata Kullanimi: fwrite <veri>"
                
return
        }

        
# Dosya ve veri kontrolu
        
if {[file exists $datafile]} {
                
set input [open $datafile r]
                while {![
eof $input]} {
                        
set curline [gets $input];set curline [split $curline]
                        if {[
lindex $curline 0] == $ahand} {
                                
puthelp "HATA: $ahand zaten $datafile da mevcut"
                                
catch {close $input}
                                return
                        }
                }
                catch {
close $input}
        }
        
# Ekleme islemi icin yeni satir yarat ve yaz
        
set output [open $datafile a]
        
puts $output "[join $ahand]"
        
flush $output
        
catch {close $output}
        
puthelp "[join $ahand] Basariyla $datafile dosyasina eklendi"
        
return [join $ahand]
}

# fdel <veri> <dosya adi>
# Yukaridaki gibi kullanilir ve dosya icerisinde belirtilmis bilgiyi siler
# Ornek  fdel aCoustiC kullanicilar.txt
proc fsil {text dosya} {
        
set datafile $dosya
        set text 
[split $text]
        
set ahand [lindex $text 0]

        
# degisken duzgun 1 sekilde yonlendiriliyormu bak
        
if {$ahand == ""} {
                
puthelp "HATA: fdel <veri> seklinde kullanin"
                
return
        }

        
# Dosya kontrol
        
if {![file exists $datafile]} {
                
puthelp "Hata Dosya Bulunamadı"
                
return
        }

        
# Dosya icerisinde veri araniyor ve yazma islemi gerceklesiyor
        
set data ""
        
set input [open $datafile r]
        while {![
eof $input]} {
                
set curline [gets $input];set curline [split $curline]
                if {
$curline != ""} {
                    
set data [linsert $data end $curline]
                }
        }
        catch {
close $input}

        
set mark -1;set match ""
        
foreach line $data {
                
incr mark
                
if {[lindex $line 0] == $ahand} {
                        
set match $mark
                        
break
                }
        }
        if {
$match == ""} {
                
puthelp "HATA: $ahand dosya icerisinde bulunamadi.."
                
return
        }
        
set newdata [lreplace $data $mark $mark]
        
set output [open $datafile w]
        foreach 
newline $newdata {
                if {
$newline != ""} {
                        
puts $output $newline
                
}
        }
        
flush $output
        
catch {close $output}
        
putlog "Basarili $ahand :Basariyla silindi.."
        
return $ahand                


1 ornek yaptim ama deneme sansim olmadi (Umarim calisir)
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


fsil ve fyaz her yerde kullanabilecegin dosya yazma ve silme ozelligine sahip her yerde kullanabilirsin. Tabi unutmadan kullanici giris cikislarini kanallara ozel yapman lazim yoksa #musteri ve #bekleme kanallari ayri bindler de ifade edilmeli. ek olarak kullanici taramasi yapman lazim dosya icinde dosya icindeki kullanici kanaldami degil mi gibi.

daha tutumlu sorgular icin bu fonksiyonlari

if {[fsil nick dosya]} {
yada
if {[fyaz nick dosya]} {

ile denetleyebilirsin dogruysa degisken atanir dogru degilse degisken olmadigindan secmeden disari cikilir.

Kolay geldin

__________________
Our brain is Our Weapon
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet