Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[VBSCRIPT] RECHERCHE D'UN CARACTÈRE OU D'UNE CHAINE DE CARACTÈRES DANS UNE PHRASE


Information sur la source

Catégorie :VBScript Classé sous : vbs, recherche, extraction, chaine, caractère Niveau : Débutant Date de création : 29/04/2006 Vu : 16 730

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description


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

  • '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  • ' 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
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 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

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

--Recherche d'1 caractère ds une chaine de carac [ par ckoo ] Je voudrais rechercher si il y a un "@" dans une chaine de caractère afin de vérifier la validité d'un champ de saisie de mail !merci d'avance extraction depuis une chaine de texte en partant d1 caractère spécial [ par oni0013 ] Salut,Je dispose d'une textbox et je voudrai extraire de cette dernière tout le texte qui va depuis le signe ";" jusqu'à la fin du texte.Je pense qu'i Recherche dans une chaine de caractère en vba [ par hasen ] Salut!Je voudrais savoir si qqun n'a pas sous la main un petit programme qui permettrais de récuperer les deux premiers chiffre d'un nombre.Merci d'av Recherche d'une chaine de caractère dans page html [ par Chewba ] Bonjour à tous,Je suis occupé à faire une application dans le style de la source : "http://www.vbfrance.com/code.aspx?ID=18579", qui va rechercher les recherche en partant de la fin d'une chaine de caractère [ par xpwindaube ] svp quelqu'un pourrait me dire comment faire pour faire une recherche en partant de la fin d'un texte ?enfaite je recherche un mot dans une richbox ma extraction de caractères d'une chaine [ par hela_bouks ] Salut,Si j'ai par exemple une chaine de caractère J2 et une chaine de caractère J15. Je ne voudrai garder que le 2 et le 15. Comment éliminer le J? Me [VBS] Formater une chaine de caractère [ par remifalcon ] Bonjour !, Je souhaiterai supprimer tout ce que se trouve après la première virgule d'une chaine enVBS Ex: CN=Groupe2,CN=Users,DC=cbtest,DC=priv     recherche d'un caractère dans une cellule en VBA [ par podzob56 ] Bonjourje souhaiterai créer une macro VBA qui me permettrait de savoir si il y a une point dans une cellule où non(par exemple: 884.59-&gt;ok et 88 47 decoupage chaine de caractère [ par bobby3 ] Bonjour à tousVoila dans le cadre d'un application sous vb 2005 il faut que j'extraie certaine donné d'un fichier xmlPour ca pas de probleme mais les Remplacer énième caractère d'une chaine. [ par Vianneyp ] Bonsoir,J'aimerai savoir s'il existe une fonction en vb6 permettant de remplacer l'énième caractère d'une chaine,quel qu'il soit,en un autre caractère


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.