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

Résolu
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008 - 21 juin 2006 à 17:10
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 - 21 juin 2006 à 17:32
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

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
21 juin 2006 à 17:17
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.
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
21 juin 2006 à 17:26
ou plutôt


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





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008
21 juin 2006 à 17:29
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 
0
gregory__forel Messages postés 36 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 18 juillet 2008
21 juin 2006 à 17:30
Ah, ben pour le coup du vbTab, t'as été plus rapide... ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
21 juin 2006 à 17:32
Parfois, je me relis







Manu


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