Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


choisir un fichier aleatoire
#1
Bonjour, j'aimerais avoir un peu d'aide car je cherche en vain comment faire pour que mon bot ecrive lui meme dans un fichier voulu.

J'explique
le fichier de configuration de mon quizz se nomme quizz.conf
dans ce fichier doit figurer le nom de la base de donnée des questions sous forme "QUIZZFile=scripts/1.db"

Maintenant je possede plusieurs bases de données qui sont "1.db" "2.db" "3.db" etc...

J'aimerais faire en sorte que toutes les 2 heures mon egg ecrive lui meme dans le fichier "quizz.conf" au hasard une de mes bases de données qui sont comprise ente 1.db et 5.db. C'est a dire le quizz s'active et 2 heures apres le l'egg ecris lui meme au hasard QUIZZFile=scripts/1.db ou au hasard QUIZZFile=scripts/3.db histoire que mes questions tournes assez.

Merci
#2
voici un petit bout de code si quelqu'un peut m'aider ce serais gentil.


tcl
proc ::AutoRotation {min hour args} {
global botnick fname
set mot1 [lindex $text 0]
set f [open "$fname" "a"]
puts $f "QUIZZFile=scripts/$mot1.db"
close $f
puthelp "PRIVMSG #chan :rotation des questions"
}
 
bind time -|- {*0 * * * *} ::AutoRotation
 
proc ::AutoRotation {min hour args} {
global botnick fname
set mot1 [lindex $text 0]
set f [open "$fname" "a"]
puts $f "QUIZZFile=scripts/$mot1.db"
close $f
puthelp "PRIVMSG #chan :rotation des questions"
}


J'ai actuellement 5 bases de données et j'aimerais donc que toutes les 2 heures ca change de base de donnée ainsi de suite.
Les bases de données se nommes 1.db 2.db 3.db 4.db et 5.db
#3
Tu peux faire un tirage aléatoire du fichier avec quelque chose du genre:

tcl
set mydb [glob -dir scripts *.tcl]
set QUIZZFile [lindex $mydb [rand [llength $mydb]]]


(à adapter bien sûr)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#4
J'ai testé comme ca


tcl
bind time -|- {*/2 * * * *} ::AutoRotation
 
proc ::AutoRotation {min hour args} {
global botnick fname
set mydb [glob -dir scripts *.db]
set QUIZZFile [lindex $mydb [rand [llength $mydb]]]
set f [open "$fname" "a"]
puts $f "QUIZZFile=scripts/$mydb"
close $f
puthelp "PRIVMSG #chan :rotation des questions"
}


Cela ne marche pas et je n'ai aucune erreur en PL :s
#5

tcl
bind time -|- {*/2 * * * *} ::AutoRotation
 
proc ::AutoRotation {min hour args} {
global botnick fname
set mydb [glob -dir scripts *.db]
set QUIZZFile [lindex $mydb [rand [llength $mydb]]]
set f [open "$fname" "a"]
puts $f "QUIZZFile=scripts/$QUIZZFile"
close $f
puthelp "PRIVMSG #chan :rotation des questions"
}

Par contre, il faut vérifier ce qui est mis dans $QUIZZFile: le fichier ou path + fichier.
Vive le putlog.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#6
en fait c'est dans le dossier scripts il y a un fichier quizz.cfg
et ce fichier quizz.conf contient l'info ecrite QUIZZFile=scripts/1.db ou QUIZZFile=scripts/2.db en fonction de ce que le bot
pourrais choisir comme .db
#7
Maintenant, tu as tous les éléments pour faire ce que tu veux, donc cherche un peu, je ne te donnerai pas la solution directe. Surtout parce que je n'ai pas tous les éléments et que si c'est pour que tu recopies bêtement, ça ne t'apportera rien.

Tu sais désormais choisir un fichier aléatoirement, à toi de te servir de ça.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  identd aléatoire même si il est pas activé larrybr 1 3,297 07/01/2008, 18:47
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)