Lecture Fichier TXT

Résolu
Herve29000 Messages postés 38 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 20 octobre 2014 - 8 mai 2010 à 12:34
Herve29000 Messages postés 38 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 20 octobre 2014 - 8 mai 2010 à 18:16
Bonjour à tous

Je travaille en VBA Excel, et essaie de lire un fichier TXT afin de récupérer des données.

A priori, la longueur des lignes est variable, allant jusqu'à 132 caractères.
-----------------------------
Mon code

Open "F:\_\STATDET1.TXT" For Input As #1
Do While Not EOF(1)
Input #1, Ligne
etc
Loop
close #1
-----------------------------

la longueur de ligne est variable, et par consequent je ne peux récupérer sur les lignes de données, ce qui m'interesse.

Dois je rajouter une information pour pouvoir y arriver.

Merci de vos réponses.

Herve29000

3 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
8 mai 2010 à 16:24
Salut
Salut
Lire des lignes, Ok.
Quel est ton problème ?

"la longueur de ligne est variable" : oui, c'est en général le cas.

"et par consequent je ne peux récupérer sur les lignes de données"
Faudra nous dire pourquoi ça te gène ? "par conséquent" de quoi ?

0D et 0A : c'est vbCrLf : un grand classique des fins de ligne des fichiers texte Windows.

Si ton problème c'est la récupération de donnée à l'intérieur de ta chaine Ligne, il suffit de joingler avec les chaines : Instructions Instr, Mid, Left, Right, ...

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Herve29000 Messages postés 38 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 20 octobre 2014
8 mai 2010 à 14:58
Bonjour à tous

Je travaille en VBA Excel, et essaie de lire un fichier TXT afin de récupérer des données.

A priori, la longueur des lignes est variable, allant jusqu'à 132 caractères.
-----------------------------
Mon code

Open "F:\_\STATDET1.TXT" For Input As #1
Do While Not EOF(1)
Input #1, Ligne
etc
Loop
close #1
-----------------------------

la longueur de ligne est variable, et par consequent je ne peux récupérer sur les lignes de données, ce qui m'interesse.
A noter que mes fins de lignes sont avec un code 0D 0A soit retour chariot et saut de ligne
Dois je rajouter une information pour pouvoir y arriver.

Merci de vos réponses.

Herve29000
0
Herve29000 Messages postés 38 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 20 octobre 2014
8 mai 2010 à 18:16
Merci jack pour tes infos,

Mais en fait je voudrais pouvoir tester chaque ligne :
- Tester si elle fait partie de l'entête
- Si elle fait partie de la fin de page
- Si c'est une ligne de données, ma routine aimerait qu'elle puisse tourner même avec des MID, RIGHT ou LEFT etc...
le souci c'est que mes lignes ne commencent pas toutes au même endroit, comme si un caractère génait le processus.

Merci de ta réponse à venir

Hervé 29000
0