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 :

[VB6] Contenu d'un fichier txt


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut [VB6] Contenu d'un fichier txt
    je développe une application VB6 et je souhaiterais :

    Connaitre la première et la dernière ligne que contient un fichier txt

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Voui ? Un peu d'astuce et tu aurais trouvé tout seul...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub LirePremièreLigneEtDernièreLigneDansFichierTxt()
    Dim PremièreLigne, Phrase, DernièreLigne
        Open "D:\Doc\Fichier.txt" For Input As #1
        Do While Not EOF(1)
            i = i + 1
            If i = 1 Then Input #1, PremièreLigne
            Input #1, DernièreLigne
        Loop
        Close #1
        MsgBox PremièreLigne & vbCrLf & DernièreLigne
    End Sub
    Le mieux est de comprendre ce que tu veux faire, après, c'est tout simple...

    A+

  3. #3
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Ta source marche mais il existe un cas ou elle plante :

    Le fichier ne contient qu'une seule ligne

  4. #4
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    J'ai modifié la source et ça devrait marcher dans tous les cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim PremièreLigne, Phrase, DernièreLigne, i
        Open "D:\VBProjet\ViewtransFTP\ordrescript.txt" For Input As #1
        Do While Not EOF(1)
            i = i + 1
            If i = 1 Then Input #1, PremièreLigne
            Input #1, DernièreLigne
        Loop
        Close #1
        If DernièreLigne = "" Then
        DernièreLigne = PremièreLigne
        End If
        MsgBox PremièreLigne & vbCrLf & DernièreLigne

  5. #5
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Merci à toi ouskel'n'or

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    On va tirer les oreilles de Ousk
    essaye donc celà sans i et i + 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub LirePremièreLigneEtDernièreLigneDansFichierTxt() 
    Dim PremièreLigne, Phrase, DernièreLigne 
        Open "D:\Doc\Fichier.txt" For Input As #1
             Input #1, PremièreLigne 
             DernièreLigne = PremièreLigne
            Do While Not EOF(1) 
              Input #1, DernièreLigne 
           Loop 
        Close #1 
        MsgBox PremièreLigne & vbCrLf & DernièreLigne 
    End Sub

  8. #8
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Ta solution marche impecablement jmfmarques je te remercie cependant si le fichier contient des lignes vides du style :

    aaaa
    bbbb
    |->
    |->

    la dernière ligne sera vide

    existe il un moyen pour pallier ce problème.

  9. #9
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Autre question une ligne m'a interpellé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Open "D:\VBProjet\ViewtransFTP\ordrescript.txt" For Input As #1
             Input #1, PremièreLigne
             DernièreLigne = PremièreLigne
            Do While Not EOF(1)
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DernièreLigne = PremièreLigne
    Pourquoi initialise t'on cette variable avec la variable PremièreLigne

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Pourquoi ?... Mais tout simplement parce que la dernière ligne sera la 1ère également, s'i n'y en a pas d'autres !

    Maintenant, si tu veux éviter tes lignes "vides" éventuelles : fastoche !
    dans la boucle loop de ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do While Not EOF(1) 
        Input #1, titi
         if titi <> "" then dernièreLigne = titi 
      Loop

  11. #11
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Je te remercie ça marche impeccablement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire le contenu d'un fichier *.txt
    Par touf213 dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/07/2007, 15h49
  2. Récuperer le contenu d'un fichier txt
    Par masterix59 dans le forum C
    Réponses: 2
    Dernier message: 12/01/2007, 12h02
  3. effacer le contenu d'un fichier .txt
    Par masterix59 dans le forum C
    Réponses: 10
    Dernier message: 18/12/2006, 19h42
  4. Réponses: 4
    Dernier message: 26/06/2006, 11h41
  5. Réponses: 1
    Dernier message: 14/04/2006, 16h51

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