Lire un fichier texte et récupérer le contenu de chaque champ de ligne qui est s [Résolu]

Signaler
Messages postés
36
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
18 juillet 2008
-
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
Bonjour à tous,

Je dispose d'un fichier texte dont voici le contenu

A   150
B   385
C   789

etc...

Entre les lettres et les numéros, il y a une "tabulation". J'ai peut être mal cherché, mais je n'ai pas trouvé sur le forum une méthode pour lire les lignes du fichier et récupérer chaque données indépendament.
Voici mon code, qui ne fonctionne pas. Je pensais pouvoir récupérer les champs séparés par la tabulation dans 2 variables var1 et var2, mais non. Je précise que je sais manier les chaines de caractères et que je sais comment faire pour faire une recherche d'espace entre les 2 données et récupérer tout ca, mais je crois me rappeler qu'une fonction ou une syntaxe permet de le faire automatiquement et qui m'éviterait un code "sale".
   
    Open "fichiertexte" For Input As #1
        Do While Not EOF(1)
            Input #1, var1, var2
            'ecrire les variables var1 et var2 dans un fichier excel a differents endroits
        Loop
    Close #1

Merci beaucoup pour votre aide, et désolé si la source existait déjà.

5 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
Salut,







Dim numFile As Long
Dim tablo() As String

numFile = FreeFile
Open "fichiertexte" For Input As #numFile
    Whil
e N

ot EOF(numFile)
       Line Input #numFile, sTemp 'récupère une ligne entière
       tablo = Split(sTemp," ") 'découpe la chaine selon les espaces
       For i = LBound(tablo) To UBound(tablo)
          ' Faire quelque chose avec la donnée tablo(i)
          MsgBox tablo(i)
       Next i
    Wend
Close #numFile





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
ou plutôt


tablo = Split(sTemp,vbTab) pour des tabulations.





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
36
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
18 juillet 2008

Super Manu, merci beaucoup.

C'est effectivement mieux d'utiliser FreeFile pour travailler un fichier. Juste un commentaire, je viens de lire une source sur un autre site: comme dans mon cas c'est la tabulation qui sépare mes données, j'utiliserai plutôt
tablo = Split(sTemp,vbTab)
'découpe la chaine selon les espaces
au lieu de
tablo = Split(sTemp,"  ")
'découpe la chaine selon les espaces

A part ca, rien a dire a part merci 
Messages postés
36
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
18 juillet 2008

Ah, ben pour le coup du vbTab, t'as été plus rapide... ;)
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
Parfois, je me relis







Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.