Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1246 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lire un .txt avec vba

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lire un .txt avec vba

n°1487296
bebop_loul​a
Posté le 06-12-2006 à 15:25:49  profilanswer
 

bonjour tous,
 
voilà j'ai un petit souci avec la lecture d'un fichier texte... quelqu'un peut-il m'aider à trouver la solution ?
 
Mon fichier txt est composé d'un certain nombre de lignes. Chaque ligne est une suite de champs (string ou integer) séparés par des virgules. Je souhaite stocker ces informations dans un tableau.
 
Le code ci-dessous me permet, ligne après ligne de stocker ces données dans des variables. Mais comment faire si ma ligne contient 400 champs ?
 
J'imagnine qu'il y a un autre moyen que d'écrire input #1, champ1, champ2, ..., champ400
 
enfin j'espère...
 
Merci !
 
 
Private Sub CommandButton1_Click()
     
Dim champ1, champ2
 
Open "M:\testfile.txt" For Input As #1
Do While Not EOF(1)
 
Input #1, champ1, champ2
 
Loop
Close #1
End Sub

mood
Publicité
Posté le 06-12-2006 à 15:25:49  profilanswer
 

n°1487304
kiki29
Posté le 06-12-2006 à 15:33:59  profilanswer
 

Placer ta ligne dans une variable de type string
puis faire un split de cette variable avec comme séparateur la virgule, ce qui scindera ta chaine en autant d'éléments dans un tableau de type Variant
voir aide en ligne pour instruction Split,LBound,UBound

n°1487308
bebop_loul​a
Posté le 06-12-2006 à 15:40:25  profilanswer
 

raaaaaahh, merci !!! je ne connaissais pas cette fonction, magnifique :)

n°1487325
tegu
Posté le 06-12-2006 à 16:02:17  profilanswer
 

Je rajoute la fonction Join() à la liste de kiki29
Elle fait l'inverse de Split()

n°1487334
kiki29
Posté le 06-12-2006 à 16:08:03  profilanswer
 

Utiliser Line Input au lieu de Input
Petit exemple : par contre la limite jusqu'à Excel 2007 exclu est de 256 colonnes


Option Explicit
 
Sub Bouton1_QuandClic()
Dim Chaine As String
Dim Ar() As String
Dim i As Integer
Dim r As Long, c As Long
Dim NumFichier As Integer
 
    Cells.Clear
    NumFichier = FreeFile
    r = 1
    Open "M:\testfile.txt" For Input As #NumFichier
        Do While Not EOF(NumFichier)
            c = 1
            Line Input #NumFichier, Chaine
            Ar = Split(Chaine, "," )
            For i = LBound(Ar) To UBound(Ar)
                Cells(r, c) = Ar(i)
                c = c + 1
            Next
            r = r + 1
        Loop
    Close #NumFichier
End Sub


Message édité par kiki29 le 07-12-2006 à 08:14:55

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lire un .txt avec vba

 

Sujets relatifs
Mettre à disposition du XML dynamiquement (et comment le lire)XSL tester l'extistence d'un fichier avant de le lire avec document()
Lire un TDateTime (delphi)Lire des valeurs hexadecimales(negatives) dans un fichier
Lire un XML (tag spécifique) avec javaVB.net Prob lire première ligne de mon fichier avec mon progr
script pour lire une vidéo[RES] lire un gros fichier XML en php en évitant xml_parse_into_struct
[RESOLU] Lire un JS sans permettre son téléchargementIe6 ne veut pas lire ma page!
Plus de sujets relatifs à : lire un .txt avec vba


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR