Lire une ligne au hasard dans un txt

cs_LeRoux Messages postés 27 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 4 septembre 2002 - 22 févr. 2002 à 00:37
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 23 juin 2005 à 19:57
J'aimerais savoir comment faire pour lire un ligne au hasard dans un txt pour ensuite la transférer dans une étiquette. Je c'est le random mais pour aller chercher le txt, pour lire la ligne et pour la mettre dans l'étiquette, comment fait-on? SVP?!?!?!

9 réponses

cs_DragonHeart Messages postés 38 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 16 octobre 2008
22 févr. 2002 à 08:54
Voila la commande pour récupéré une ligne dans un fichier text
Tu ouvre ton fichier text

Open "Chemind'accés + nom fichier" for Input as #1
Line Input #1,texte 'Place le comptenue de la ligne du fichier texte(#1) lue dans la variable texte
close #1
0
cs_oliver68 Messages postés 117 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 10 mars 2003
22 févr. 2002 à 09:50
salut,

dragon a raison, mais il en manque un bout par rapport à ta question :

sub truc()
close
open "monfichier.txt" For input as #1
i = 0
hasard = int(rnd * 100)
do until eof(1)
line input #1, texte
i = i + 1
if i = hasard then tonlabel.text=texte: close:exit sub
loop
close
end sub

tu peux changer mon rnd*100 par rnd*1000 ou rnd*10, c'est fonction du nb de ligne de ton fichier.

good luck, @+
0
cs_LeRoux Messages postés 27 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 4 septembre 2002
22 févr. 2002 à 14:55
Quelque questions, en passant, je ne veut pas que sa ce fasse plus d'une fois de suite.

sub truc() 'le nom de l'objet, c ok
close 'fermer un fichier déja ouvert
open "monfichier.txt" For input as #1 'pourait-je avoir plus qu'un input?
i = 0 'a quoi sa sert
hasard = int(rnd * 100) 'le rnd
do until eof(1) 'a quoi sa sert d'avoir le loop
line input #1, texte '#1= le txt1, mais ", texte" sert a quoi
i = i + 1 '?
if i = hasard then 'mais si je met sa, sa va lire la ligne 1, ensuite 2 et .....
tonlabel.text=texte
close
exit sub
End If
loop
close
end sub

pourrait-je mettre:

sub truc()
close
open "monfichier.txt" For input as #1
var_ligne = int(rnd * 100)
line input #1, texte 'sa, shu vraiment pos sur?, je veut que sa lise la ligne var_ligne
tonlabel.caption = texte
close
end sub
0
cs_LeRoux Messages postés 27 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 4 septembre 2002
22 févr. 2002 à 14:55
Quelque questions, en passant, je ne veut pas que sa ce fasse plus d'une fois de suite.

sub truc() 'le nom de l'objet, c ok
close 'fermer un fichier déja ouvert
open "monfichier.txt" For input as #1 'pourait-je avoir plus qu'un input?
i = 0 'a quoi sa sert
hasard = int(rnd * 100) 'le rnd
do until eof(1) 'a quoi sa sert d'avoir le loop
line input #1, texte '#1= le txt1, mais ", texte" sert a quoi
i = i + 1 '?
if i = hasard then 'mais si je met sa, sa va lire la ligne 1, ensuite 2 et .....
tonlabel.text=texte
close
exit sub
End If
loop
close
end sub

pourrait-je mettre:

sub truc()
close
open "monfichier.txt" For input as #1
var_ligne = int(rnd * 100)
line input #1, texte 'sa, shu vraiment pos sur?, je veut que sa lise la ligne var_ligne
tonlabel.caption = texte
close
end sub
0

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

Posez votre question
cs_LeRoux Messages postés 27 Date d'inscription vendredi 22 février 2002 Statut Membre Dernière intervention 4 septembre 2002
22 févr. 2002 à 14:55
Quelque questions, en passant, je ne veut pas que sa ce fasse plus d'une fois de suite.

sub truc() 'le nom de l'objet, c ok
close 'fermer un fichier déja ouvert
open "monfichier.txt" For input as #1 'pourait-je avoir plus qu'un input?
i = 0 'a quoi sa sert
hasard = int(rnd * 100) 'le rnd
do until eof(1) 'a quoi sa sert d'avoir le loop
line input #1, texte '#1= le txt1, mais ", texte" sert a quoi
i = i + 1 '?
if i = hasard then 'mais si je met sa, sa va lire la ligne 1, ensuite 2 et .....
tonlabel.text=texte
close
exit sub
End If
loop
close
end sub

pourrait-je mettre:

sub truc()
close
open "monfichier.txt" For input as #1
var_ligne = int(rnd * 100)
line input #1, texte 'sa, shu vraiment pos sur?, je veut que sa lise la ligne var_ligne
tonlabel.caption = texte
close
end sub
0
cs_oliver68 Messages postés 117 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 10 mars 2003
22 févr. 2002 à 17:06
tu peux pas mettre ton code car il ne te lira que la 1ere ligne et que la 1ere ligne de ton fichier.

ce que fais mon code :

line input #1 = veut dire que ça lit une ligne du fichier et pour faire lire de la1ere à la dernière tu dois faire un do-loop jusqu'à la fin du fichier (eof). on lit le fichier séquentiellement.
le i=0 et i=i+1 permet de savoir quelle ligne du fichier est lue pour la comparer à la valeur du rnd. et si i=le rnd ton label est modifié, c'est l'instruction if i=hasard then. si i égale pas le rnd rien n'est fait.

mon code est bon.

@+
0
cs_oliver68 Messages postés 117 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 10 mars 2003
22 févr. 2002 à 17:07
tu peux pas mettre ton code car il ne te lira que la 1ere ligne et que la 1ere ligne de ton fichier.

ce que fais mon code :

line input #1 = veut dire que ça lit une ligne du fichier et pour faire lire de la1ere à la dernière tu dois faire un do-loop jusqu'à la fin du fichier (eof). on lit le fichier séquentiellement.
le i=0 et i=i+1 permet de savoir quelle ligne du fichier est lue pour la comparer à la valeur du rnd. et si i=le rnd ton label est modifié, c'est l'instruction if i=hasard then. si i égale pas le rnd rien n'est fait.

mon code est bon.

@+
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
21 avril 2004 à 13:44
Bonjour,

je narrive pas à faire marcher ce code, pourtant j'aimerai faire exactement ça.

Quelqu'un a une idée ?
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
23 juin 2005 à 19:57
Encore plus simple, ce code est plus compacte et mieu programmer, enfin je pense lol



sub truc()

open "monfichier.txt" For input as #1

hasard = int(rnd * 100)

for i=0 to hasard

line input #1, texte

next i

end sub



et texte contient la dernière ligne lui donc celle choisie par hasard :D cqfd





Bonne progra ++
0
Rejoignez-nous