Lunon
Messages postés3Date d'inscriptionlundi 14 juillet 2008StatutMembreDernière intervention18 juillet 2008
-
14 juil. 2008 à 12:19
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 2012
-
18 juil. 2008 à 20:38
Bonjour, je souhaite tester sur un bot une fonction très basique.
En tappant par exemple !test dans un channel, je voudrais que le bot aille chercher dans le fichier test.txt les différentes phrases qu'il trouve. C'est très simple et j'arrive à le faire. Par contre, j'aimerai qu'il les prenne dans l'ordre du fichier ex : 1, 2, 3, 4 etc et non 3, 8, 1, 6 aléatoirement comme il le fait actuellement. Quelqu'un aurait cette petite astuce ?
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 15 juil. 2008 à 22:39
salut
en tapant !test tu veux recevoir les lignes completes donc le contenu d'un fichier ??
pourquoi ne pas faire /loadbuf #chan test.txt donc:
on *:text:!test:#:loadbuf #chan test.txt
mais dans les 2 cas avec loadbuf ou $read si le fichier a trop de ligne tu risque un flood :p
tape /help /loadbuf
mais si c'est pour lire une phrase a chaque !test et pas aléatoire
essaye ça
on *:input:#: {
if ($1 == !test) {
var %i $lines(test.txt)
;pour reprendre la 1er ligne
if (%i == %l) set %l 0
if (!%l) set %l 1
else set %l $calc(%l + 1)
msg # $read(test.txt,%l)
;comme ça a chaque !test tu aura une ligne
}
;et au cas que tu veu annulé et reprendre a zero
if ($1 == !reload) {
if ($2 == test) {
unset %l
}
}
}
pareil avec entete on *:text:*:#: { .... pour les autre utilisateurs
alors si tu tape !reload test tu revien a zero si tu retape !test c'est la premiere ligne
c'est une exemple a toi de voir ce qu'il te faut ;)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 15 juil. 2008 à 23:24
Je ne crois pas que ce soit ce qu'il veut. Et si c'était le cas, "/play" est bien plus adapté que "/loadbuf" qui sert comme son nom l'indique à faire du buffering (si je ne m'abuse...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 16 juil. 2008 à 10:54
salut
"Je ne crois pas que ce soit ce qu'il veut. Et si c'était le cas"
oui effectivement j'ai constaté ça car il dit
"C'est très simple et j'arrive à le faire. Par contre, j'aimerai qu'il les prenne dans l'ordre du fichier ex : 1, 2, 3, 4 etc et non 3, 8, 1, 6 aléatoirement comme il le fait actuellement"
donc on comprend d'ici qu'il fait un $read(test.txt) et ça lit aléatoirement alors le 2eme code qu'il cherche ce qui est plus clair j'espere qu'il repond pour qu'on sache si c'est vraiment qu'il cherche ou on a pas bien compris ce qu'il voulait
Donc ça lis les lignes les unes après les autres, sans être aléatoirement ce que je cherchais, mais dans un fichier avec 500 lignes il faut que je les tapes toutes ? J'ai cru lire plus haut qu'on pouvait faire un compteur... Quelqu'un pourrait m'expliquer ?
Mais comme j'ai des fichiers .txt qui font 40 ou 50 lignes je voudrais savoir si avec un compteur (mais je n'ai aucune idée de comment faire) on pouvait simplifier le code.
Et une autre petite question, dans un gros fichier .txt genre 2000 ou 3000 phrases, comment peut-on faire pour faire lire sur le chan avec le code ci-dessus toutes les lignes du ficher .txt comprenant le mot "essai" par exemple ?
WorldDMT
Messages postés871Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 20121 18 juil. 2008 à 20:38
salut
bon pour le contenu d'un grand fichier fais
on *:text:!test:#:play test.txt 1000 (si c'est pour un bot)
on *:input:#: if ($1 == !test) play test.txt 1000 (si c'est dans ta remote donc toi meme qui tape !test)
comme ça la lecture sera (1000 ms = 1 sec.) 1 sec. chaque ligne ce qui est par defau pour evité le flood (voir: /help /play)
et /play stop pour arreter de defiler
pour la 2eme question c'est pas aussi simple que ça je ne suis pas encore a ce niveau :p