Lire une ligne spécifiée (par son N°) dans un fichier texte
Xaxa BN
-
Modifié par ucfoutu le 16/12/2015 à 20:19
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
16 déc. 2015 à 17:35
Bonjour,
je suis débutant surr vb6 et j'aimerai écrire uniquement sur la deuxième ligne de mon fichier texte :) est ce que quelqu'un pourrait m'aider
Private Sub lire_Click()
Dim i As Integer
Dim TextLine As String
Dim line1, line2, line3 As String
Open "\\BUREAU-\Dossiers Stagiaires\2015 \Jeu de la Roulette.txt" For Input As #1
Line Input #1, TextLine 'Met la ligne dans la variable.
Text2.Text = TextLine 'Ajoute la ligne dans le textbox
End Sub
A voir également:
Line input vba
Vba line input - Meilleures réponses
Vb.net lire fichier texte ligne par ligne - Meilleures réponses
Dans un fichier séquentiel (c'est le cas pour un fichier texte), on ne peut pas choisir la ligne, ou plutôt on ne peut pas aller à la ligne choisie du premier coup.
Par exemple, si on veut lire la ligne 10, on est obligé de lire les 9 premières avant, mais on n'est pas obligé de les traiter.
exemple avec une boucle for next:
Open "\\-BUREAU-\Dossiers Stagiaires\2015 \Jeu de la Roulette.txt" For Input As #1
'je veux la ligne 10 for i = 1 to 9 Line Input #1, TextLine 'ignorer next
'ligne 10 Line Input #1, TextLine Text2.Text = TextLine 'Ajoute la ligne dans le textbox
Sinon il faut passer par un fichier à accès direct (type Random), mais ça c'est une autre histoire.
Bonjour,
1) j'ai modifié le titre de cette discussion ("Problèmes VB6" ne révèle en rien la nature de la difficulté traitée ! Lire les règles de ce forum à ce sujet)
2) la réponse donnée par Mosca, que je salue, est tout-à-fait correcte.
Si toutefois ton appli est amenée à lire fréquemment telle ou telle autre ligne de ce fichier, il pourra être plus astucieux de prévoir une petite fonction, genre :
Private Function lire_ligne(fic As String, ligne As Long) As String Open fic For Input As #1 le_tout = Input$(LOF(1), 1) Close #1 lire_ligne = Split(le_tout, vbNewLine)(ligne - 1) End Function
Appelable part exemple ainsi :
MsgBox lire_ligne("D:\la.txt", 3)
pour lire la ligne 3 du fichier D:\la.txt
Tu pourrais même gagner encore en vitesse en mettant dans une variable générale toto ( avec toto = Split(le_tout, vbNewLine) ) l'array résultant de l'éclatement du fichier. Cela pourrait être fait au chargement de l'appli.
Il te suffirait ensuite d'utiliser toto(0) pour la ligne 1, toto(8) pour la ligne 9, etc ...
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.