set varName ?newValue?
#1
Bonsoir,

Je voudrais réaliser un petit TCL qui, dans l'idéal :), pioche une question dans un fichier texte, jusque là tout va bien, toutes les Xh15mn
j'ai donc fait comme ceci :

Code :
bind time - "15 * * * *" actionquest bind pubm -|- * reponse # -> Sélection de l'énigme proc actionquest { min hour day month year } { global rep tps_rep set nbr_lignes [compte:lignes $::rpg(quest)] set num_hasard [expr int(rand()*$nbr_lignes)+(1&&$nbr_lignes)] set ligne [read:event $::rpg(quest) $num_hasard] set ligne_split [split $ligne "|"] set quest [lindex $ligne_split 0] set rep [lindex $ligne_split 1] putserv "PRIVMSG $::rpg(chan) :$quest" puthelp "PRIVMSG $::rpg(chan) :Vous disposez de 30 secondes pour répondre." set tps_rep "on" set utimer 30 endquest } # -> Fin du temps de réflexion proc endquest {nick host hand text} { global tps_rep set tps_rep "off" } # -> Verification réponse proc reponse { nick host hand chan arg text } { global rep tps_rep set zoom [lrange arg 0 end] if { $tps_rep == "off" } { puthelp "NOTICE $nick :Désolé mais le temsp impartit est écoulé" return 0 } if { $zoom != $rep } { return 0 } if { $zoom == $rep } { puthelp "PRIVMSG $::rpg(chan) : Bravo $nick !!" } }
le problème est que j'ai ça en PL :
Code :
Tcl error [actionquest]: wrong # args: should be "set varName ?newValue?"
et là je suis coincé, pouriez-vous m'aider svp ?
Merci !
Répondre
#2
Je ne vois pas ta procédure compte:ligne, il est possible qu'elle ne renvoit pas toujours une valeur.
Présent sur le Tchat francophone
Répondre
#3
J'utilise ceci pour lire et compter :
Code :
# -> Lecture proc read:event { fichier num_ligne } { if { ![file readable $fichier] } { return "\002\0034Erreur\003\002 : impossible de lire le fichier." } if { $num_ligne<=0 } { return "\002\0034Erreur\003\002 : numéro de ligne non valide" } set fHnd [open $fichier "r"] set counter 0 set ligne "" while { ![eof $fHnd] } { set foo [gets $fHnd] incr counter if { $counter == $num_ligne } { set ligne $foo break } } close $fHnd return $ligne } # -> Comptage du nombre de lignes proc compte:lignes { fichier } { if { ![file readable $fichier] } { return 0 } set fHnd [open $fichier "r"] set counter 0 while { ![eof $fHnd] } { gets $fHnd incr counter } close $fHnd return $counter }
Répondre
#4
Trouvé...heu...merci :)
Répondre
#5
Désolé, j'avais raté ta réponse précédente.
Donc oui, je présume que ton
tcl
set counter 0


était mal placé ;)
Présent sur le Tchat francophone
Répondre
#6
En effet oui :)
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles Le forum pour passer le temps