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 :

problème lecture d'un fichier texte


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 62
    Par défaut problème lecture d'un fichier texte
    Bonjour,

    j'ai un fichier texte produit par un systeme unix et reporté sur windows (automatiquement).

    quand j'essaie de lire ce fichier ligne par ligne, il me lit l'ensemble des lignes en une seule fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim fichier As String
    Dim ligne As String
     
    Open fichier For Input As #2
     
    While Not EOF(2)
       Line Input #2, ligne
       debug.print ligne
    Wend
     
    Close #2
    Ce meme fichier quand je l'ouvre avec Notepad, il est sur une seule ligne, par contre si je l'ouvre avec ultra edit ou meme wordpad, il est bien sur plusieurs lignes.

    avez vous une idée svp pour pouvoir le lire ligne par ligne ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Bonjour,

    Si tu n'as qu'une ligne en l'ouvrant dans le bloc note, c'est à priori le format standard du fichier. Il ne doit pas y avoir de retour à la ligne (CrLf).

    Tu as peut-être dans tes autres éditeurs une option du style "Retour automatique à la ligne"

  3. #3
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Les fichiers texte unix ont la particularité d'avoir un unique LineFeed là ou le monde Windows/Dos utilise un CarriageReturn+LineFeed

    Donc un VbLf au lieu d'un VbCrLf
    Le mieux est de lire completement ton fichier en mode binaire et de faire un split sur le VbLf

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 62
    Par défaut
    Citation Envoyé par Delbeke
    Les fichiers texte unix ont la particularité d'avoir un unique LineFeed là ou le monde Windows/Dos utilise un CarriageReturn+LineFeed

    Donc un VbLf au lieu d'un VbCrLf
    Le mieux est de lire completement ton fichier en mode binaire et de faire un split sur le VbLf
    merci beaucoup pour la réponse, mais peux-tu expliquer un peut plus en donnant du pseudo code pour le découpage.

    merci.

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    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
    Dim fichier As String
    Dim ligne As String
    Dim Buffer as String
    Dim Lignes as Variant
    Dim lPnt as string
     
    Open fichier For Binary  As #2
       Buffer = String(Lof(2),0)    'on dimensinne buffer à la taille du fichier
       Get #2, ,Buffer               'on lit le fichier en entier
    Close #2
     
    Lignes=Split(Buffer,VbLf)    'on decoupe le buffer dans un tableau
    For lPnt = 0 to Ubound(Lignes)
       Ligne = Lignes(lPnt)
       Debug.Print Ligne
    Next

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 62
    Par défaut
    Cool, ça marche très bien.

    merci beaucoup pour votre aide )

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

Discussions similaires

  1. Problème de lecture dans un fichier texte.
    Par Mike888 dans le forum C
    Réponses: 3
    Dernier message: 24/05/2007, 11h45
  2. [WIN32]problème de Lecture d'un fichier texte
    Par jesus144 dans le forum Windows
    Réponses: 14
    Dernier message: 23/02/2007, 11h40
  3. problème de lecture depuis un fichier texte
    Par [Hugo] dans le forum C++
    Réponses: 12
    Dernier message: 27/10/2006, 16h46
  4. [VBnet] Problème de lecture d'un fichier texte.
    Par dibeloni dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 19h12
  5. Réponses: 2
    Dernier message: 28/12/2005, 15h00

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