Lecture aléatoire d'un fichier multiple

[Résolu/Fermé]
Signaler
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011
-
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011
-
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

Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Ou que le repertoire du dossier contient un espace, il manque un $shortfn sur le $read : $read($shortfn(%r))
Tu as une erreur ?
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
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.
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
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
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011

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
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
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))
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011

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" ;)
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011

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à ...
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011

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 .....