Bonjour,
Exemple facilement transformable en vb6.
Dans ce script, j'affiche le nombre de fois que l'occurence recherchée
a été trouvée.
Il suffit donc de faire un Replace pour ne garder que les 4 premiers "XXXX".
Sur ce forum ou sur http://www.codyx.org/ , tu trouveras une variante en pur vb6.
jean-marc
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Recherche et modification d'une chaine de caractère dans une phrase
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Instruction Option Explicit: Force la déclaration explicite de toutes les variables dans un script
'Option Explicit
'Instruction Const: Déclare des constantes destinées à remplacer des valeurs littérales
Const Texte = "<span XXXXXclass="" txtnav3on"">XXXXX Colis <b>=NuméXXXXXX; ro 8N00629048780</b> à destination de =<b>74130 </span> </td>"
Const sChaine = "XXXXX" 'chaine recherchée
'Instruction Dim: Déclare des variables et alloue l'espace de stockage
Dim aPos() , iPos
'Instruction ReDim: Déclare les variables de tableau dynamique et attribue ou
'réattribue l'espace de stockage au niveau de la procédure
'Tableau où sont stockées les positions
ReDim aPos(0)
'Fonction InStr: Renvoie la position de la première occurrence d'une chaîne
'à l'intérieur d'une autre
iPos = InStr(1, Texte, sChaine)
'Instruction While...Wend: Exécute une série d'instructions tant qu'une condition donnée est True
While iPos <> 0
'Fonction UBound: Renvoie le plus grand indice disponible pour la dimension indiquée d'un tableau
ReDim Preserve aPos(UBound(aPos) + 1)
aPos(UBound(aPos)) = iPos
iPos = InStr(iPos + 1, Texte, sChaine)
Wend
'Instruction If...Then...Else: Exécute un groupe d'instructions soumises à une condition,
'en fonction de la valeur d'une expression
If UBound(aPos) > 0 Then
Dim i , Resultat
Resultat = "L'occurrence """ & sChaine & """ a été trouvée " & UBound(aPos) & " fois " &_
"dans l'expression " &vbCrLf&vbCrLf& """" & Texte & """" &vbCrLf
'Instruction For...Next: Répète un groupe d'instructions un nombre spécifié de fois
'Fonction CStr: Renvoie une expression qui a été convertie en un Variant de sous-type String
'Fonction Len: Renvoie le nombre de caractères contenus dans une chaîne
For i = 1 To UBound(aPos)
Resultat = Resultat & vbCrLf & "Postion: " & CStr(aPos(i)) & "," & CStr(aPos(i)) + Len(sChaine)
Next
Else
Resultat = "L'occurrence """ & sChaine & """ n'a pas été trouvée dans l'expression " &vbCrLf&vbCrLf&_
"""" & Texte & """" '&vbCrLf&vbCrLf&_
End If
MsgBox Resultat