IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Lecture à partir d'un fichier


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut Lecture à partir d'un fichier
    Bonjour, je voudrais lire le contenu d'un fichier et afficher les données dans des text box.

    J'arrive à écrire dans un fichier via des text box.

    voici mon code pour l'écriture des données dans le fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Dim nomfichier As String
    Dim numfichier As Integer
     
     
     
    Private Sub CmdAfficher_Click()
     
    End Sub
     
    Private Sub cmdEnregistrer_Click()
     
    'Dim nomfichier As String
    'Dim numfichier As Integer
     
    'nomfichier = InputBox("Donner le nom du fichier")
    'numfichier = FreeFile
     
    'Open "C:\" & nomfichier For Append As numfichier
    Print #numfichier, txtNom.Text, txtPrenom.Text, txtDateNaissance.Text
    'Close #numfichier
    txtNom.Text = ""
    txtPrenom.Text = ""
    txtDateNaissance.Text = ""
     
    End Sub
     
    Private Sub CmdQuitter_Click()
    Close #numfichier
     
    End
    End Sub
     
    Private Sub Form_Load()
    nomfichier = InputBox("Donner le nom du fichier")
    numfichier = FreeFile
     
    Open "C:\" & nomfichier For Append As numfichier
     
    End Sub


    Pour la lecture du fichier voici mon début de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Dim nom As String
    Dim prenom As String
    Dim date_naissance As String
     
    'nom = Input (numfichier)
    txtNom.Text = Input(numfichier, nom)
     
     
    End Sub
     
    Private Sub CmdQuitter_Click()
     
     
    End
     
    End Sub
     
    Private Sub Form_Load()
     
    End Sub


    Pouvez-vous m'aider à ouvrir le fichier et récupérer les données??

    Merci

  2. #2
    Membre éclairé Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Par défaut
    Pour lire ton fichier .txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Open "C:\tutu.txt" For Input As #1     'Ouvre le fichier tutu.txt
        Do While Not EOF(1)                     ' Effectue la boucle jusqu'à la fin du fichier.
     
        Line Input #1, LineResult          'je lis la ligne
        Debug.Print LineResult             'affiche dans la fenêtre Exécution
        toto= LineResult                     'met le ligne dans la variable toto
     
        Loop                                     'boucle
        Close #1                                'ferme le fichier.

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Une astuce pour se simplifier la vie : l'utilisation du RichTextBox
    Tu le trouvera dans les autre composants (Ctrl + T ouvre la bt de dialogue Composants) sous le nom Microsoft RichTextBox Control (SP6). SP6 pour Service Pack 6.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Load()
        ' charge le fichier txt dans un RichTextBox
        ' ce fichier se trouve dans le même répertoire que le programme
        RichTextBox1.LoadFile App.Path & "\toto.txt"
    End Sub

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    je viens tester le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Open "C:\tutu.txt" For Input As #1     'Ouvre le fichier tutu.txt
        Do While Not EOF(1)                     ' Effectue la boucle jusqu'à la fin du fichier.
     
        Line Input #1, LineResult          'je lis la ligne
        Debug.Print LineResult             'affiche dans la fenêtre Exécution
        toto= LineResult                     'met le ligne dans la variable toto
     
        Loop                                     'boucle
        Close #1                                'ferme le fichier.
    cela fonctionne bien .
    par contre on lit toute la ligne. comment fait on pour pouvoir séparer les éléments de la ligne?

  5. #5
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    en fonction de quel délimiteur? virgule ? espace?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    des espaces. mais je suis preneur pour les virgules

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Edit: 3 messages dans la même minute

    Salut

    Si cela te convient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Option Explicit
    Dim nomfichier As String
    Dim numfichier As Integer
     
    Private Sub Form_Load()
    nomfichier = "C:\PersoFrancis\AAAAA.txt" '********** A modifier ********
    End Sub
     
    Private Sub Command1_Click()
    numfichier = FreeFile
    Open nomfichier For Output As numfichier
    'Print #numfichier, txtNom.Text, txtPrenom.Text, txtDateNaissance.Text
    Write #numfichier, "Texte dans txtNom", "Texte dans txtPrenom", "Texte dans txtDateNaissance"
    Close #numfichier
    End Sub
     
    Private Sub Command2_Click()
    Dim LineResult As String, Decoupe() As String
    numfichier = FreeFile
    Open nomfichier For Input As numfichier
    Line Input #numfichier, LineResult
    Close #numfichier
    Decoupe = Split(LineResult, ",")
    txtNom.Text = Replace(Decoupe(0), Chr(34), "")
    txtPrenom.Text = Replace(Decoupe(1), Chr(34), "")
    txtDateNaissance.Text = Replace(Decoupe(2), Chr(34), "")
    End Sub
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    je n'ai pas trop compris la procédure pour la commande 1.
    Elle sert à quoi? a remplir le fichier?

    le code sous click2 ne fonctionne pas, j'ai des erreurs.
    en faite, j'ai que la première ligne qui s'affiche pas les suivantes.

  9. #9
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    en faite, j'ai que la première ligne qui s'affiche pas les suivantes.
    Trois TextBoxs, une ligne suffit, ou alors tu veux en remplir d'autres.
    Dans ce cas il aurait fallu le dire dés le départ, peux tu confirmer le nombre de TextBoxs que tu sauvegardes en une seul instruction, 3, 4 , ...
    Quand tu sauvegardes le contenu de chaque TextBoxs, tu fais plusieurs Print ou Write #numfichier ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    En fait , le contenu de mes 3 textbox sont bons pour la 1ere ligne de mon fichier.
    je voudrais les lignes suivantes à chaque fois que je clique sur le bouton afficher.

    ex : monfichier.txt
    toto tata 01/01/01
    tutu tata 02/02/02
    ...


    j'ai bien dans mes 3texbox quand je clique la 1ère fois sur afficher:
    toto
    tata
    01/01/01

    Par contre je n'ai pas la 2eme ligne de mon fichier lorsque je clique pour la 2eme fois sur le bouton afficher.

  11. #11
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Avant tout, as tu pensé à utiliser une Base de Données plutôt qu'un fichier TXT, cela te permettrais d'aller chercher directement la ligne d'enregistrement, car avec ton fichier txt tu vas devoir charger toutes les lignes, donc plus coûteux en temps et mémoire.
    Par contre il est possible bien sûr de le faire avec un fichier TXT si tu n'as l'intention de n'avoir que peu de ligne d'enregistrement.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut
    je dois utiliser un fichier txt (du moins dans un premier temps).
    je suis preneur via une BDD. mais pour l'instant j'aimerais utiliser le fichier txt.

  13. #13
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Explicit
    Dim nomfichier As String
    Dim numfichier As Integer
     
    Private Sub Form_Unload(Cancel As Integer)
    If numfichier <> 0 Then Close #numfichier
    End Sub
     
    Private Sub Command1_Click()
    nomfichier = "C:\PersoFrancis\AAAAA.txt" '************* Amodifier ****************
    'juste poour avoir un fichier
    'simulation de la sauvegarde de 3 TextBoxs en ecrivant/ajoutant 3 lignes dans un fichier *.TXT
    numfichier = FreeFile
    Open nomfichier For Append As numfichier
    'Print #numfichier, txtNom.Text, txtPrenom.Text, txtDateNaissance.Text
    Write #numfichier, "Texte dans txtNom", "Texte dans txtPrenom", "Texte dans txtDateNaissance"
    Write #numfichier, "deuxiéme saisie dans txtNom", "deuxiéme saisie dans txtPrenom", "deuxiéme saisie dans txtDateNaissance"
    Write #numfichier, "toisiéme saisie dans txtNom", "toisiéme saisie dans txtPrenom", "toisiéme saisie dans txtDateNaissance"
    Close #numfichier
    numfichier = 0
    End Sub
     
    Private Sub Command2_Click()
    If numfichier = 0 Then
        numfichier = FreeFile
        Open nomfichier For Input As numfichier
    End If
    recupLigne
    End Sub
    Private Sub recupLigne()
    Dim LineResult As String, Decoupe() As String
    '1° ligne
    Line Input #numfichier, LineResult
    Decoupe = Split(LineResult, ",")
    txtNom.Text = Replace(Decoupe(0), Chr(34), "")
    txtPrenom.Text = Replace(Decoupe(1), Chr(34), "")
    txtDateNaissance.Text = Replace(Decoupe(2), Chr(34), "")
    If EOF(numfichier) Then
        Close #numfichier
        numfichier = 0
    End If
    End Sub
    Ce code n'est qu'une démonstration, en cliquant 3 fois sur Command2, tu remplis à chaque fois tes 3 Textebox, par la suite, tu fais à nouveau défiller les enregistrements dans les TextBoxs.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Lecture à partir d'un fichier Excel
    Par saou88 dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/08/2013, 03h29
  2. Lecture à partir d'un fichier text
    Par bigmonstre dans le forum Débuter
    Réponses: 2
    Dernier message: 21/11/2011, 11h18
  3. Lecture à partir d'un fichier texte
    Par bigmonstre dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2010, 15h50
  4. lecture à partir d'un fichier PDF
    Par men1986 dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 24/07/2009, 01h14
  5. Lecture d'un PID a partir d'un fichier
    Par diskonnect dans le forum POSIX
    Réponses: 10
    Dernier message: 16/04/2007, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo