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