Lire une ligne quelconque d'un fichier *.txt [Résolu]

Mechanicman 60 Messages postés lundi 28 juillet 2003Date d'inscription 7 novembre 2004 Dernière intervention - 7 nov. 2004 à 02:33 - Dernière réponse : cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention
- 7 nov. 2004 à 18:32
Voilà,
j'ai un fichier .txt avec par exemple 20 prénoms en vrac ( 1 prenom par ligne) , je voudrais savoir comment lire par exemple la ligne 3 pour afficher aleatoirement des prenoms

Merci d'avance
Mechanicman

"Ceux qui jouissent de nos privilèges oublient avec le temps que d'autres sont morts pour les acquérir." Franklin D. Roosevelt
Afficher la suite 

5 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 7 nov. 2004 à 04:22
3
Merci
Salut Mechanicman
Non, si ton fichier doit-être lu ligne par ligne et ces lignes n'ayant pas la même taille, il n'est pas possible d'aller directement à la 3ème ligne.
Il faut que tu lises toutes les lignes de 1 à 3 et t'arrêter de lire quand tu as atteint ta 3e ligne (avec un peit compteur).
Pour info, quand tu es dans une boucle et que tu veux sortir, il te suffit de faire : Exit Do, Exit For

Vala
Jack

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 7 nov. 2004 à 10:24
0
Merci
Pour cela, je te conseille plutôt de stocker toutes tes lignes dans un tableau de chaîne, et d'afficher la ligne que tu veux. Ca évite ainsi d'accèder trop souvent au fichier si tu dois le faire plusieurs fois !
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 nov. 2004 à 10:47
0
Merci
Ceci ressemble plus à la méthode de DARKSIDIOUS qu'à celle de jack... en fait, c'est même carrément çà. :)

Dim tablo(50) As String

Private Sub Form_Load()
Dim num As Long
Dim s As String
Dim compt As Long

num=FreeFile
compt=0
Open "C:\mon_texte.txt" For Input As #num
While not EOF(num) And compt<=50
Line Input #num,s
tablo(compt)=s
compt=compt+1
Wend
Close #num
End Sub


et partout ailleurs dans le code :

tablo(3) = 4ème nom
tablo(25) = 26ème nom
tablo(N) = (N+1)ème nom

N'oublie pas de remplacer "C:\mon_texte.txt" par la bonne valeur !!

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Mechanicman 60 Messages postés lundi 28 juillet 2003Date d'inscription 7 novembre 2004 Dernière intervention - 7 nov. 2004 à 13:21
0
Merci
Merci pour vos réponses, j'ai opté pour l'ajout d'une variables qui fait office de compteur, c'était ma solution de rechange mais bon...comme il n'y a pas mieux...on fait avec :/

"Ceux qui jouissent de nos privilèges oublient avec le temps que d'autres sont morts pour les acquérir." Franklin D. Roosevelt
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 7 nov. 2004 à 18:32
0
Merci
Oui, aussi la technique du "je charge tout le fichier en mémoire" :
    Dim ff As Integer, Lignes() As String, Temp As String

    ff = FreeFile
    Open "C:\MonRép\MonFichier.txt" For Binary As #ff
        Temp = String(FileLen("C:\MonRép\MonFichier.txt"), " ")
        Get #ff, , Temp ' Récupère tout le fichier
    Close #ff
    ' Sépare toutes les lignes
    Lignes = Split(Temp, vbCrLf)
    Debug.Print Lignes(0)   ' 1ere ligne
    Debug.Print Lignes(32)  ' 33ème ligne


Vala
Jack

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.