Lecture Fichier Txt

Résolu
Lordanus Messages postés 11 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 décembre 2006 - 30 oct. 2006 à 11:55
Lordanus Messages postés 11 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 décembre 2006 - 30 oct. 2006 à 17:15
Bonjour, Débutant en Visual Basic J'aurais besoin d'un peu d'aide sur la lecture d'un fichier Txt.

En fait dans mon fichier .txt j'ai plusieures informations: un nom et une date.
Je voudrais que mon programme ouvre le fichier txt lise d'abord le nom et le mette dans une variable puis lise la date et la mette dans une autre variable.

ex de fichier txt :

Toto   25101952
Bertrand   03021978

(Les 2 informations sont separés par une tabulation)

Je connais la commande
Open  fdsfsd.txt for input as #1
Do Until EOF(1)
Line Input #1, Noms
Loop
Close #1

Mais ceci ne me permet que de lire entierement la ligne et non pas de separer en 2 variables.

Merci de votre aide

7 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 oct. 2006 à 14:38
Salut,
Et bien au lieu de declarer Noms et Date comme tableau declare les simplement comme Chaine simple

Soit
'La ligne
Dim Ligne As String 
Dim Param() As String 
'LE nom
Dim Noms As String 
'Le tableau
Dim DateN As String 
'OUverture en lecture
Open "C:\Test.txt" For Input As #1 
    Do Until EOF(1) 
        'Recuperation de la ligne
        Line Input #1, Ligne 
        '"Casse" la ligne avec Tabulation
        'Comme séparateur
        Param = Split(Ligne, vbTab) 

        Noms = Param(0) 
        DateN = Param(1) 
    Loop 
Close #1

@+,   Ju£i?n
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 oct. 2006 à 12:06
Salut,
IL te faut utiliser la fonction Split

Voici un exemple::

'La ligne
Dim Ligne As String 
Dim Param() As String 
'LE tableau de noms
Dim Noms() As String 
'Le tableau de date
Dim DateN() As String 
'Redimenssionnement des tableaux
ReDim Noms(0) 
ReDim DateN(0) 
'OUverture en lecture
Open "C:\Test.txt" For Input As #1 
    Do Until EOF(1) 
        'Recuperation de la ligne
        Line Input #1, Ligne 
        '"Casse" la ligne avec Tabulation
        'Comme séparateur
        Param =  Split(Ligne, vbTab) 
        'Place dans le tableau nom
        Noms( UBound (Noms))  = Param(0) 
        'Place dans le tableau date
        DateN(UBound(DateN)) = Param(1) 
        'Augmente la taille des tableau de 1
        ReDim Preserve Noms(UBound(Noms) + 1) 
        ReDim Preserve DateN(UBound(DateN) + 1) 
    Loop 
Close #1 

@+,   Ju£i?n
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
30 oct. 2006 à 12:10
Salut,

Essaie cette procédure :
Private Sub Test()
    Dim ff              As Integer
    Dim strFile         As String
    Dim Contenu         As String
    Dim strParLigne()   As String
    Dim strParMots()    As String
    
strFile = "C:\Documents and settings\Mortalino\Bureau\Nouveau Document texte.txt"
' n'oublie mas de modifier le chemin et nom du fichier

ff = FreeFile
Open strFile For Input As #ff
    Contenu = Input(LOF(ff), #ff)
Close #ff

strParLigne = Split(Contenu, vbCrLf)

For i = 0 To UBound(strParLigne)
    strParMots = Split(strParLigne(0), vbTab)
    For j = 0 To UBound(strParMots)
        MsgBox "-" & strParMots(j) & "-"
    Next j
Next i
    Erase strParLigne: Erase strParMots
End Sub

--Mortalino-- Colorisation automatique

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
30 oct. 2006 à 12:12
Arf, on a posté en même temps  ;)
Il aura le choix.
Pour mon code, j'ai omis la déclaration de i et j..

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0

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

Posez votre question
Lordanus Messages postés 11 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 décembre 2006
30 oct. 2006 à 14:31
Merci de vos réponses rapide

Maintenant une autre questions, serait t'il possible de faire la même chose avec seulement 2 variables, sans tableaux en supposant que dans notre fichier texte nous avons qu'une seule ligne comportant les 2 infos  (noms + date) toujors separé par une tabulation.

donc dans données.txt nous aurions :

Toto   25101982

Merci
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 oct. 2006 à 14:38
Re,
Excuse j ai oublier de supprimer la boucle de lecture (=> si il n' y a qu une seule ligne alors plus besoin de boucle)

@+,   Ju£i?n
0
Lordanus Messages postés 11 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 décembre 2006
30 oct. 2006 à 17:15
Merci pour vos solutions qui on resolu mon problème et m'on appris a en savoir un peu plus sur certaines commandes de VB.
Merci aussi pour la rapidité de vos réponses.

A+
0