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 : 18 620

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 programme pour renommer des fichiers avec une chaine de caractère contenue dedans [ par psicad ] Bonjour,Je précise que je suis complètement débutant et que j'ai déjà dans l'urgence à réaliser un programme très simple, Il s'agit de:Ouvrir tous les extraction chaine caractère [ par rescator68 ] bonjour, Je crain de poser une question pour débutant....Mais comme je ne trouve pas de solution.... je me lanceje reçois par un controle winsock par extraction chaine [ par Benythefrog ] Bonjour a toutes et a tous les developpeursMerci d'avance de vous interesser a mon problemeVoilaEn fait dans une table de ma base de donnée,j'ai un ch


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,764 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é.