Cette demande de recherche étant récurrente sur ce Forum,
je propose une solution pédagogique en VBS.
Ce script s'adresse aux débutants.
jean-marc
Source / Exemple :
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Recherche 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 = "Recherche d'une chaine de caractère dans une phrase"
Const sChaine = "che" '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 & """"
End If
MsgBox Resultat
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.