$read(mt.txt)

cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008 - 28 mai 2006 à 18:01
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008 - 12 juin 2006 à 18:38
bsr
avec cette fonction "$read(mt.txt)  , est possible de la paramettrer pour que le mot ou la phrase
tirée au sort,ne soit tirée qu'une seule fois?
merci

14 réponses

fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
28 mai 2006 à 18:16
non.
0
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
28 mai 2006 à 18:42
Bonjour, je ne suis pas sur d'avoir tout compris mais, tu pourrais arriver à quelque chose en utilisant des conditions :

alias read {
  var %read $read(fichier.txt)
  var %readn $readn
  if %ligne. $+ $readn == oui { read }
  else { ... | set %ligne. $+ $readn oui }
}

Exemple non complet et non testé
Bonne chance
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
29 mai 2006 à 18:40
Oui la fonction direct ne permet pas ce que tu demande en revanche Panthouffle ta donné la bonne idée que je complete/finis :


alias xread {

var %r $read(mt.txt) ,%rr $readn

if ($istok(%rr,%rrr,46)) xread

else { echo -a %r | set %rrr $addtok(%rr,%rrr,46) }

if ($numtok(%rrr,46) == $lines(mt.txt)) unset %rrr

}


/xread prendra une ligne du fichier et si elle n'a pas déjà été "tirée", tu l'aura en echo.

Sinon ca relance l'alias xread jusqu'a ce que cela tombe sur une ligne jamais "tirée"

Une fois toutes les lignes du fichier "tirée" cela repart a 0
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
30 mai 2006 à 16:52
merci wims
mais cela marche pas ?
es ce kil faut  le mettre dans dans une autre remote séparé?
0

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

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
30 mai 2006 à 17:38
Y'avais quelque fautes dans le code mais apres avoir testé et corrigé ca donne ca :

alias xread {

  var %r $read(mt.txt) ,%rr $readn

  if ($istok(%rrr,%rr,46)) { .timer 1 0 xread | return }

  else { echo -a > %r %rr | set %rrr $addtok(%rr,%rrr,46) }

  if ($numtok(%rrr,46) == $lines(mt.txt)) unset %rrr

}
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
31 mai 2006 à 09:29
Yeurk, si le fichier fait 8000 lignes la var %rrr va pas exploser après qq appels ?

La bonne soluce selon moi (je suis tatillon) c'est de charger le
fichier dans un buffer ou autre .txt temporaire, et de retirer le
$readn à chaque appel...

Le hic c'est que j'ai un peu la flemme de faire ca sans mirc sous la main :)

Pada
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
31 mai 2006 à 09:35
%rr pardon

Faut vraiment que j'apprenne à lire un d'ces 4

Pada
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
31 mai 2006 à 16:34
aprés plusieur essai avec un fichier de 5 mots cela marche po!!!!!!!!!!
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
31 mai 2006 à 17:03
Oui Pada a raison mais j'pense que son fichier ne dépassera pas les 100 lignes ...

J'ai testé et ca marche parfaitement :), tu l'utilise surement mal, tu peux expliquer ce que tu fait pour que ca ne marche pas ?
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
31 mai 2006 à 17:27
Vivi ca doit marcher, je taquine simplement wims ;)

Pada
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
31 mai 2006 à 17:49
en faite j'essai de faire un ptit  quizz avec.
ps:
avec la base du quizz ( http://www.ircfr.com/code.aspx?ID=21705 )
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
31 mai 2006 à 18:41
Oui oui je sais :]

simoi si tu veux faire un quizz avec cette base la, faut adapter avec mon code :)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
4 juin 2006 à 13:47
il y a un problème avec ton code, c'est qu'une fois que toutes les lignes auront été dites, bah ça sera bloqué ^^
tu pourrais aussi plus simplement mettre tes questions dans un .ini, utiliser /hload -i pour remplir ton hashtable, et delete un item à chaque fois que tu l'utilises
cad :
alias xread {
  var %nb = $r(1,$hget(Questions,0).item)
  if (!%nb) {
    if ($hget(Questions)) hfree Questions
    hmake Questions 100
    hload -i Questions Questions.ini Questions
    var %nb = $r(1,$hget(Questions,0).item)
  }
  if (!$hget(Questions,%nb)) return
  msg #tonchan $hget(Questions,%nb)
  hdel Questions %nb
}

ça devrait marcher, si ton fichier Questions.ini se présente comme ceci :
[Question]
1=Question ?
2=2e Question ...
...

tu pourrais d'ailleurs mettre les réponses dans le même fichier avec
[Réponses]
1=Réponse de la 1ere question

Pour l'alias xread, il devrait marcher dès la 1ere utilisation. Dès que toutes les questions ont été dites, il recommence
0
cs_simoi Messages postés 87 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 19 juillet 2008
12 juin 2006 à 18:38
désolé pour le retard a répondre
j'ai testé mais marche pas mon fichier (fichier txt)
si je mets mon fichier en ini,mon jeu marche plus
0
Rejoignez-nous