Lecture aléatoire d'un fichier multiple

Résolu/Fermé
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 - 18 oct. 2006 à 20:45
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 - 24 oct. 2006 à 02:32
Bonjour,

J'ai fait un petit bot d'anim (en mIRC)sans prétention, auquel, je souhaiterais faire lire des textes multiples compilés en un fichier txt installé à la racine du bot dans le dossier "systeme".
J'ai bien réussi à créer une commande, mais elle ne lit qu'une partie du texte demandé...
on *:text:!blablatext*:#:{ msg # $read systeme/blabla.txt
Je pense que je devrais me servir de $lines mais je ne sais pas comment l'appliquer dans mon code.
En attendant une éventuelle réponse, je vous souhaite à tous de bons moments de codage sans prise de tête lol :)

10 réponses

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
22 oct. 2006 à 11:13
essaye ça :
var %m = $findfile(dossierdossier,*.txt,$$r(1,%m))
msg #tonsalon Le dossier contient %m fichiers textes, voici l'un d'entre eux : %r
msg #tonsalon dont voici une ligne aléatoire : $read(%r)

si ça ne marche pas, c'est que t'as mal donné tes dossiers
3
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
22 oct. 2006 à 13:32
Ou que le repertoire du dossier contient un espace, il manque un $shortfn sur le $read : $read($shortfn(%r))
Tu as une erreur ?
3
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
19 oct. 2006 à 15:52
tu peux faire un $read(tonfichier.txt,$r(0,n)) avec n=nombre de lignes de ton fichier.

mais à priori, un simple $read(tonfichier.txt) retourne une ligne prit aléatoirement dans ton fichier.

---------------------------
da sfg.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
19 oct. 2006 à 19:20
Il fait déja une lecture aléatoire du fichier, j'crois qu'il veux lire le fichier entier.
Si c'est le cas utilise /play, sinon reformule un peu ta question
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 1
20 oct. 2006 à 02:12
Alors, déjà, merci de vos réponses, et je vais essayer de vous exposer mon souci plus clairement...

Je cherche à faire lire à mon bot, un fichier pris aléatoirement parmi "x" fichiers, tous placés à la racine de ce bot, et ce, par une unique commande, genre !lecture.
Je n'arrive pas à optimiser mon code, et dans l'état actuel des choses, j'ai fait une commande pour chaque text, ce qui est "moyen" ..car je souhaite rendre cette commande accessible aux users de mon salon, ces derniers n'étant pas obligés de mémoriser ainsi les diverses commandes se rapportant à chaque texte
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
20 oct. 2006 à 16:16
Il faut que chaque fichié texte sois identifiable par un nom commun
Genre tout tes fichiers commence par Ga :
Ga1.txt Ga2.txt ... Ga6.txt
Ensuite quand qqun parle avec !lecture , tu set une variable aleatoire entre 1 et 3 avec $r(1,3) et tu lis une ligne aleatoire avec $read($+(Ga,$r(1,3),.txt))
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
20 oct. 2006 à 19:24
ou avec $findfile :
var %m = $findfile(dossier,*.txt,0)
return $read($findfile(dossier,*.txt,$$r(1,%m)))

Tu peux affiner la recherche des fichiers *.txt s'ils ont un point commun
0
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 1
21 oct. 2006 à 00:18
Je vous remercie de vos réponses, je vais essayer ça et vous tiens au courant, vraiment sympas Tofu, Wims et RCA Arkanis ça me change de l'accueil sur certains salons irc dit d'aide au scripting où les mecs se la pètent trop et te prennent pour un boulet dès que tu ne sais pas faire un truc qu'eux même pensent savoir faire :) j'espère arrive à un niveau suffisant pour renvoyer l'ascenseur et donner un coup de main à mon tour, n'étant pour l'instant qu'un humble "bidouilleur" ;)
0
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 1
22 oct. 2006 à 02:37
bon ben .... c'est encore moi ... Mauricelepoisson alias Mauricelebouletduscript....

j'y arrive toujours pas, dans le meilleur des cas, la variable incrémentée est affichée au lieu du txt demandé sous forme de var = 8.
(le dossier X contient 8 fichiers.txt)
je dois être trop bête pour m'attaquer à ce genre de code ...je dois peut-être en rester aux simples "on text" ....bref je suis un peu découragé là ...
0
Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 1
24 oct. 2006 à 02:32
Arkanis et wims ,

un grand merci à vous 2, cela fonctionne à la perfection sous la forme suivante :on *:text:!poésie*:#:{ var %m $findfile(poésie,*.txt,0), %r $findfile(poésie,*.txt,$$r(1,%m))
/play # %r
}
de plus, celà m'a permis de mesurer le chemin à parcourir partant de mes codes barbares et torturés à quelque chose d'efficace et propre ! mais bon ... c'est en forgeant etc .....
0
Rejoignez-nous