Lire une colonne dans un fichier texte

Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
- - Dernière réponse : luluthefirst
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
- 1 juin 2009 à 10:15
Bonjour, je souhaiterais savoir comment lire juste une colonne, par exemple, y a un fichier texte ecrit:
[Options]
FileName=monfichier


Et je veux juste lire la colonne "monfichier" et la mettre dans une textbox... Est-ce possible?
Merci à tous.
Afficher la suite 

10 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut
Oui, c'est possible, mais pas directement.
Il te faut lire la ligne entière puis découper la chaine pour en extraire ce qui se trouve entre = et [
--> Puzzle avec ces instructions : regarde dans l'aide de VB6 (et ses exemples) et sers toi de ces mots pour faire des recherches parmi les codes du site
   FreeFile pour choisir automatiquement un numéro de fichier à ouvrir
   Open pour ouvrir le fichier
   "Line Input #" pour lire une ligne entière
   Instr pour rechercher la position d'un caractère
   Mid pour isoler une partie de la chaine
   "Close #" pour refermer le fichier

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
J'allais oublier :
   Do et Loop pour faire une boucle si tu as besoin de lire plusieurs lignes à la suite
Commenter la réponse de cs_Jack
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
lawl je comprend pas lol en fait, c'est sa (dommage que la balise
 n'existe pas...)


[Options]
saut de ligne
FileName=Monfichier

Et je n'arrive pas à comprendre ses fonctions, je sais lire une ligne et ensuite la mettre dans la text box comme ça:
Open "monfichier.dat" For input as #1
Input #1, inutile
Input #1, Fichier
Close 1
Text1.Text = Ficher

Mais là je comprend pas ton code :(
Commenter la réponse de luluthefirst
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
J'oubli toujours que on peut jamais sauter des lignes... Comment tu fais pour sauter des lignes?
Commenter la réponse de luluthefirst
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Re
Pour sauter une ligne ?
J'appuis sur "Entrée"
Jamais de problème sous Internet Explorer. Qu'utilises-tu ?

Ok, donc ta donnée se trouve sur la Xème ligne de ton fichier.
Il faut donc lire en boucle ces lignes avec "Line Input #" et pas "Input #"
Le genre de boucle de lecture existe dans tous les codes qui gèrent la lecture de fichier texte (rechercher "lire fichier" parmi les codes en excluant .Net).
Tu n'as qu'à charger une ou deux source et faire des essais, tu trouveras facilement

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
Moi aussi j'appuis sur entrée mais quand je post mon message, je vois aucune ligne de sauté.

J'essay ce code:


Open "monfichier.dat" for Input as #1

for i = 1 to 9

Line input #1, i

next i

Close 1

text1.text = i

Pour enfin lire la 9ème colonne de la 2ième ligne, enfin pas sùr
Commenter la réponse de luluthefirst
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
Apparement,
ça me dit que l'entrée dépasse la fin du fichier
Commenter la réponse de luluthefirst
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
Ah lala j'y arrive pas du tout, même avec Instr et Mid...
Commenter la réponse de luluthefirst
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Re
Cette erreur apparait parce que tu essayes de lire plus de ligne qu'il n'y en a dans le fichier.
Si tu avais pris le temps de charger et analyser une des sources du site, tu aurais trouvé comment lire les lignes sans débordement possible avec un Do While Not EOF(1) - Loop
De plus, un exemple TOUT FAIT existe dans l'aide de l'instruction "Line Input #" !
Essaye quand même de faire des recherches avant de poser ce genre de question ...

D'autre part, "Line Input #" ne sait lire que des lignes qui se terminent par (au moins) un retour chariot vbCr (Chr(13)) ou vbCrLf (Chr(13) + Chr(10))
Ton fichier répond-il à cette exigence ?
Si ce n'est pas le cas, tu risques de charger la totalité du fichier lors de la première lecture, il faudrait alors faire autrement

Que vaut ta variable i au moment de l'erreur ?
Que vaut ...
   ... autre bug : Tu fais une boucle For Next avec la variable i et tu utilises cette même variable dans la lecture de la ligne !
Ta boucle va perdre les pédalles !
Comme expliqué dans l'aide (encore une fois), Line Input te permet de lire une ligne sous la forme d'une String.
Si tu prends le risque de lire directement un chiffre avec cette instruction (comment est dimensionné i ?), tu rsiques une future erreur de type incompatible ...
Il faut de toute façon, utiliser une autre variable que i

Bref, tu fais comme tu veux, mais par pitié, lit l'aide, il y a tout pour comprendre et faire des essais

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
0
Merci
le problème c'est que je peux pas acceder à l'aide, j'obtiens le message:
"Unable to display help"
Commenter la réponse de luluthefirst