Lire une ligne spécifiée (par son N°) dans un fichier texte

Xaxa BN - 16 déc. 2015 à 15:16 - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 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
Afficher la suite 

Votre réponse

7 réponses

0
Merci
Bonjour,

Pouvez-vous être plus clair, car dans votre code il n'y a aucune instruction d'écriture dans un fichier.

A+
Commenter la réponse de Mosca
XaxaBN
Messages postés
3
Date d'inscription
mercredi 16 décembre 2015
Dernière intervention
16 décembre 2015
- 16 déc. 2015 à 15:30
0
Merci
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
En fait ce code me permet de lire dans un fichier texte mais je souhaiterais uniquement lire la deuième ligne comment faire ?
Commenter la réponse de XaxaBN
0
Merci
OK alors c'est simple, il suffit d'ignorer la ligne 1 , comme ceci:

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 'ignorer lecture ligne 1

'lecture ligne 2
Line Input #1, TextLine 'Met la ligne dans la variable.
Text2.Text = TextLine 'Ajoute la ligne dans le textbox

Close 'fermeture fichier

End Sub
Commenter la réponse de Mosca
XaxaBN
Messages postés
3
Date d'inscription
mercredi 16 décembre 2015
Dernière intervention
16 décembre 2015
- 16 déc. 2015 à 16:03
0
Merci
COMMENT Sélectionner le numéro d'une ligne précisemment ?
Commenter la réponse de XaxaBN
XaxaBN
Messages postés
3
Date d'inscription
mercredi 16 décembre 2015
Dernière intervention
16 décembre 2015
- 16 déc. 2015 à 16:06
0
Merci
dans un fichier texte comment est-ce que je peux sélectionner une ligne précise si j'en ai 32 ou 40 stp ?
Commenter la réponse de XaxaBN
0
Merci
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.
Commenter la réponse de Mosca
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- Modifié par ucfoutu le 16/12/2015 à 17:37
0
Merci
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.
Commenter la réponse de ucfoutu

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.