23/09/2012, 00:42
Je veux lire les 20 dernières lignes d'un fichier texte avec mon bot. Est-ce que c'est possible ?
Si oui, merci de me faire un exemple s'il-vous-plaît.
Si oui, merci de me faire un exemple s'il-vous-plaît.
set recup ""
set fichier1 "$nf"
set liste10 [open $fichier1 r]
while { [ eof $liste10 ] == 0 } {
gets $liste10 info
if { $info ne "" } {
lappend recup $info
}
}
close $liste10
set recup [lrange $recup end-20 end ]
set fichier "ton_fichier"
set inf [open $fichier "r"]
set datas [split [read -nonewline $inf] "\n"]
close $inf
set datas [lrange $datas end-20 end]
[14:10:24] <~Owner> !connect Qqun
[14:10:24] <Notice> de Chorus ..:Liste des connexions:..
[14:10:24] <Notice> de Chorus 1 --> Qqun *.107.*.248 18/10/2011 19:43:33
...
[14:10:24] <Notice> de Chorus 20 --> Qqun *.28.*.199 18/12/2011 21:28:13
bind pub - !connect connects
proc connects { nick host handle channel arg } {
global connects vhostnivconnect salonconnect connects
foreach salonst $salonconnect {
if {[string equal -nocase $salonst $channel]} {
foreach vhost $vhostnivconnect {
if [string match -nocase $vhost $host] {
if {$arg == ""} {
putquick "NOTICE $nick :\00312- \0031Syntax \0036!connect pseudo/IP \00312-"
return 0
}
putquick "NOTICE $nick :\0033..:Liste des connexions:.."
catch {open "connect.txt" "r"} connexion
set num 0
set verif [split [read -nonewline $connexion] "\n"]
set verif [lrange $verif end-20 end]
while {![eof $connexion]} {
gets $connexion verif
if {$verif ne "" && [string match -nocase *$arg* $verif]} {
incr num 1;
putquick "NOTICE $nick :\0034 $num -->\0033 [lrange $verif end-20 end] \r"
}
}
catch {close $connexion}
if {$num eq "0"} {putquick "NOTICE $nick :\0034Aucune connexion dans la base de donnée ! \r; return 0"}
putquick "NOTICE $nick :\0033Fin de la Liste (\0034 $num \0033connexion(s) enregistré(s))";
return 0
}
}
}
}
bind pub - !connect connects
proc connects { nick host handle channel arg } {
global connects vhostnivconnect salonconnect connects
foreach salonst $salonconnect {
if {[string equal -nocase $salonst $channel]} {
foreach vhost $vhostnivconnect {
if [string match -nocase $vhost $host] {
if {$arg == ""} {
putquick "NOTICE $nick :\00312- \0031Syntax \0036!connect pseudo/IP \00312-"
return 0
}
putquick "NOTICE $nick :\0033..:Liste des connexions:.."
catch {open "connect.txt" "r"} connexion
set res {}
while {![eof $connexion]} {
gets $connexion verif
if {$verif ne "" && [string match -nocase *$arg* $verif]} {
lappend res $verif
}
}
catch {close $connexion}
if { [llength $res] == 0 } {
putquick "NOTICE $nick :\0034Aucune connexion dans la base de données !"
return 0
} elseif {[llength $res] >=20} {
set res [lrange $res end-20 end]
}
set num 0
foreach line $res {
incr num
putquick "NOTICE $nick :\0034 $num -->\0033$line"
}
putquick "NOTICE $nick :\0033Fin de la Liste (\0034 $num \0033connexion(s) enregistré(s))"
}
}
}
}
}