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

VBA Word Discussion :

comparer un string dans fichiers txt ligne par ligne caractère par caractère


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2017
    Messages : 19
    Points : 18
    Points
    18
    Par défaut comparer un string dans fichiers txt ligne par ligne caractère par caractère
    Bonjour,

    Toujours grand débutant sur vba, j'ai encore besoin de vos lumières.

    J'ai un fichier texte de 4 lignes du genre :
    N1000G11000000000000000000000000C0000000000000000000P00000000000E00000000F000000000000000000000S000000000000D000000Z0H0000M0000R0000A0000L000O000 Exo1
    N1000G10000000000000000000000000C0000000000000000000P00000000000E00000000F000000000000000000000S000000000000D000000Z0H0000M0000R0000A0000L000O000 Exo2
    N1000G01000000000000000000000000C0000000000000000000P00000000000E00000000F000000000000000000000S000000000000D000000Z0H0000M0000R0000A0000L000O000 Exo3
    N1000G00100000000000000000000000C0000000000000000000P00000000000E00000000F000000000000000000000S000000000000D000000Z0H0000M0000R0000A0000L000O000 Exo4

    et un autre numéro genre :
    N1000G00100000000000000000000000C0000000000000000000P00000000000E00000000F000000000000000000000S000000000000D000000Z0H0000M0000R0000A0000L000O000
    qui est dans une variable string.

    J'aimerai à partir du 7e caractère comparer caractère par caractère ma ligne 1 de mon texte avec ceux de mon numéro.
    dès que pour la même position, les 2 caractères sont des 1 alors je passe à la ligne 2 de mon fichier texte et je recommence : à partir du 7e caractère, je compare ma ligne 2 et mon numéro caractère par caractère.
    dès que pour la même position, les 2 caractères sont des 1 alors je passe à la ligne 3 et je recommence.... .

    Le numéro comporte 145 caractères.

    Je n'y arrive pas entre les for, do while, mid, je suis perdu.

    Merci de m'aider à m'en sortir.

    J'ai fait quelque chose mais cela ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If CheckBox23.Value = True Then
        Do While Fichier.AtEndOfStream <> True
        chaine = Fichier.ReadLine(compteur)
        For i = 7 To 145
        If Mid(numero, i, 1) = "1" Then
            If Mid(chaine, i, 1) = "1" Then
            FileCopy "F:\Lionel\Travail\Réforme\Base Exercices\Exo" & compteur & ".docx", "F:\Temp\Exo" & compteur & ".docx"
            compteur2 = compteur2 + 1
            End If
        Next i
        compteur = compteur + 1
        Loop
    End If
    Lionel.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2017
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Je me réponds à moi-même.

    En fait, je n'entrais pas dans ma boucle car le fichier texte était déjà lu jusqu'à sa fin avant d'entrer dans la boucle.
    J'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Fichier = objet.OpenTextFile("F:\Lionel\Travail\Réforme\Base Exercices\data.txt")
    que j'ai placé après mon premier test et cela marche.

    Finalement, cela donne :
    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
    If CheckBox23.Value = True Then
        Set Fichier = objet.OpenTextFile("F:\Lionel\Travail\Réforme\Base Exercices\data.txt")
        Do While Fichier.AtEndOfStream <> True
        chaine = Fichier.ReadLine
        For i = 7 To 145
        If Mid(numero, i, 1) = "1" Then
            If Mid(chaine, i, 1) = "1" Then
            FileCopy "F:\Lionel\Travail\Réforme\Base Exercices\Exo" & compteur & ".docx", "F:\Temp\Exo" & compteur & ".docx"
            compteur2 = compteur2 + 1
            End If
        End If
        Next i
        compteur = compteur + 1
        Loop
    End If
    Me voilà reparti pour affronter de futurs problèmes...

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

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