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 :

Enlever les espaces dans la lecture d'une ligne d'un fichier


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Janvier 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 40
    Par défaut Enlever les espaces dans la lecture d'une ligne d'un fichier
    Bonjour,

    mon besoin est de lire un fichier ligne à ligne, d'identifier une balise et, une fois celle-ci trouvé, de récupérer le contenue de la ligne suivante sans les espaces.

    Un extrait du fichier :

    00010600 3
    80010001 1
    80010601 1
    DC020603 12
    r e g 8 7 . c o n
    DC020613 14
    d e f a u t . c o n
    DC020615 32
    H : \ T d \ G Q L \ G Q A - R E G \ a v s a X X \
    80010647 1
    80010604 1
    80010605 1
    Le code est le suivant, dès que je trouve la balise "DC020603 ", je récupère la ligne en dessous sans les espaces, voici le bout de code qui ne fonctionne pas.
    J'aimerai récupérer "reg87.con", je récupère "r"


    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
    Do While Not EOF(CodeFichier)
     
        Line Input #CodeFichier, Ligne
     
            ' Recherche de la balise "DC020603"
            PositionRecherchee = InStr(Ligne, "DC020603")
     
            ' Lecture de la ligne suivante si la balise a été trouvée
            If PositionRecherchee > 0 Then
                Line Input #CodeFichier, Ligne
                ' La ligne lue contient le nom du fichier de connexion par défaut.
                RechercheNomFichierConnexion = Ligne
                Exit Do
            End If
     
    Loop

    Merci pour votre aide.

    Cordialement

  2. #2
    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
    Salut

    Pas sûr d'avoir tout compris mais .....
    Trim(LeString) supprimes les espaces à droite et à gauche
    LTrim(LeString) supprimes les espaces à gauche
    RTrim(LeString) supprimes les espaces à droite
    Replace(LeString," ","") supprimes tous les les espaces
    :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 ← ← 👈

  3. #3
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Janvier 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 40
    Par défaut
    Bonjour,

    effectivement, après recherche j'ai trouvé toutes les possibilités de suppression des espaces.
    J'ai essayé de l'appliquer sur le "line input" mais sans succès.
    Après avoir ajouté des traces, le bout de code dans cette discussion me trouve bien la balise et apparemment, il récupère la première lettre de la ligne suivante et s'arrête car la ligne suivante comporte un espace entre chaque lettre.

    Peut être faut-il supprimer les espaces avant le line input ?

  4. #4
    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
    Donc au final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            If PositionRecherchee > 0 Then
                Line Input #CodeFichier, ligne
                ' La ligne lue contient le nom du fichier de connexion par défaut.
                'la variable ligne conient: r e g 8 7 . c o n (avec les espaces)
                ligne = Replace(ligne, " ", "")
                'la variable ligne conient: reg87.con (les espaces en moins)
                RechercheNomFichierConnexion = ligne
                Exit Do
            End If
    En plus condensé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            If PositionRecherchee > 0 Then
                Line Input #CodeFichier, ligne
                ' La ligne lue contient le nom du fichier de connexion par défaut.
                RechercheNomFichierConnexion = Replace(ligne, " ", "")
                Exit Do
            End If
    :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 ← ← 👈

  5. #5
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Janvier 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2016
    Messages : 40
    Par défaut
    j'ai ajouté des traces et mis 2 fois le "Replace" au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PositionRecherchee = InStr(Ligne, "DC020603")
     
            Trace.AjouteTrace "W:\Q60\", "dq60adif.trc", "Nom de la balise (version du modele BI V10.3.2) : " & PositionRecherchee
     
            ' Lecture de la ligne suivante si la balise a été trouvée
            If PositionRecherchee > 0 Then
               Trace.AjouteTrace "W:\Q60\", "dq60adif.trc", "Ligne        : " & Ligne
               Trace.AjouteTrace "W:\Q60\", "dq60adif.trc", "#CodeFichier : " & CodeFichier
                Ligne = Replace(Ligne, " ", "")
                Line Input #CodeFichier, Ligne
                ' La ligne lue contient le nom du fichier de connexion par défaut.
                Ligne = Replace(Ligne, " ", "")
                Trace.AjouteTrace "W:\Q60\", "dq60adif.trc", "Ligne        : " & Ligne
                RechercheNomFichierConnexion = Ligne
    Le résultat :
    15:35:16 : Nom de la balise (version du modele BI V10.3.2) : 1
    15:35:16 : Ligne : DC020603 12
    15:35:16 : #CodeFichier : 1
    15:35:16 : Ligne : r
    La lecture de la ligne s'arrête apparemment sur le premier espace rencontré. C'est ce que j'ai depuis le début et je n'arrive pas à m'en sortir,

  6. #6
    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
    Citation Envoyé par vinceago Voir le message
    ........
    La lecture de la ligne s'arrête apparemment sur le premier espace rencontré. C'est ce que j'ai depuis le début et je n'arrive pas à m'en sortir,
    Essais, si possible de réécrire le fichiers, avec seulement les 2 lignes
    DC020603 12
    r e g 8 7 . c o n
    Ne fais pas de copier/coller, tape le au clavier, tu seras sûr que les espaces entre les caractères sont bien des espaces de code 32 Ascii.
    Si la lecture de ce fichier par ton programme donne le résultat attendu, c'est que les caractères espace du fichier source ne sont pas de code ascii 32.

    J'ai un programme qui permet de vérifier chaque caractères d'un string, je pourrais te donner un coup de main si le problème vient de là.
    :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 ← ← 👈

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2011, 17h42
  2. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  3. Réponses: 5
    Dernier message: 15/11/2006, 11h43
  4. supprimer les espaces dans une chaîne de caratères.
    Par Empty_body dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2006, 18h43
  5. [VB6]Gérer les espaces dans une command FTP
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/07/2006, 21h28

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