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 Discussion :

Recherche de chaine de caractere


Sujet :

VBA

  1. #1
    Membre régulier Avatar de zoullou
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 103
    Points
    103
    Par défaut Recherche de chaine de caractere
    Bonjour,

    J'essais de faire un programme qui recherche des données dans des fichiers textes. Pour cela, j'utilise la librairie VBScript_RegExp_55.

    Mon souci est que je n'arrive pas à récupérer le code retour en entier. L'expression ne me renvoie que le dernier chiffre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set Matches = reg.Execute("sortie standard.*([0-9]{1,3})")
    For Each Match In Matches
       Debug.Print "source >>", Match.Value
       For i = 0 To Match.SubMatches.Count - 1
          Debug.Print "[$" & i + 1 & "]", Match.SubMatches(i)
       Next i
    Next Match
    Ce bout de code est executer sur la chaine : "code retour du batch : 64"

    Merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 114
    Points
    1 114
    Par défaut
    Bonjour,

    La propriété "global" est-elle sur "true" (elle est sur false par défaut) ?
    Michel_M

  3. #3
    Membre régulier Avatar de zoullou
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 103
    Points
    103
    Par défaut
    Bonjour,

    Voila le code exact pour reproduire le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    regExp.pattern = "code retour du batch.*([0-9]{1,3})"
    regExp.Global = True
    Set Matches = reg.Execute("code retour du batch : 64")
    For Each Match In Matches
       Debug.Print "source >>", Match.Value
       For i = 0 To Match.SubMatches.Count - 1
          Debug.Print "[$" & i + 1 & "]", Match.SubMatches(i)
       Next i
    Next Match
    Il semble que le pattern est mal interprété par la librarie.

    Merci d'avance

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 114
    Points
    1 114
    Par défaut
    Re
    regexp n'est il pas un mot réservé ?

    1/ regexp et reg pour la même variable ?

    2/
    le ":" de ton texte n'est pas dans le pattern ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    regExp.pattern = "code retour du batch.*([0-9]{1,3})"
    regExp.Global = True
    Set Matches = reg.Execute("code retour du batch : 64")
    Michel_M

  5. #5
    Membre régulier Avatar de zoullou
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 103
    Points
    103
    Par défaut
    Arf j'ai fait une faute de frappe.

    Voila le code corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    regExp.pattern = "code retour du batch.*([0-9]{1,3})"
    regExp.Global = True
    Set Matches = regExp.Execute("code retour du batch : 64")
    For Each Match In Matches
       Debug.Print "source >>", Match.Value
       For i = 0 To Match.SubMatches.Count - 1
          Debug.Print "[$" & i + 1 & "]", Match.SubMatches(i)
       Next i
    Next Match
    le ":" ext inclut dans le patern (il est inclu dans le ".*").
    Le probleme est que si je met ce pattern : "code retour du batch.*([0-9]{2})", ça fonctionne mais le code retour est un chiffre entre 0 et 999. Le nombre de chiffre varie donc.

    Merci pour ton aide.

Discussions similaires

  1. Souci avec une recherche de chaîne de caractère
    Par Pymousse dans le forum C++
    Réponses: 3
    Dernier message: 27/07/2007, 09h52
  2. [PERL] Recherche sous chaine de caracteres
    Par KrSt94 dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2007, 16h25
  3. [Debutant]Recherche de chaines de caracteres
    Par Sourrisseau dans le forum Langage
    Réponses: 3
    Dernier message: 28/01/2007, 08h30
  4. recherche de chaine de caractere par colonne
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/12/2006, 08h19

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