Chercher une chaine de caractère dans une autre (+explications)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 462 fois - Téléchargée 40 fois

Contenu du snippet

Fonction permettant de chercher une chaine de caractère dans une autre

Source / Exemple :


'Explication :
'
'SearchText(Chaine, Separateur, Gauche) As String
'
'Chaine : est la phrase ou le texte dans lequel on veut effectuer la recherche
'Separateur : est le caractère qui une fois trouvé arrete la recherche
'Gauche : est le sens de la recherche (si TRUE commence par la gauche sinon par le droite)
'
'By JejeSoftware®

Function SearchText(ByVal Chaine As String, ByVal Separateur As String, Optional ByVal Gauche As Boolean) As String
 Dim Position As Integer
 Dim Texte As String
If Gauche = True Then
  Position = 1
  Texte = Chaine
  While Right(Texte, Len(Separateur)) <> Separateur
    Texte = Left(Chaine, Position)
    Position = Position + 1
  Wend
  SearchText = Left(Chaine, Position - 1 - Len(Separateur))
Else
  Position = Len(Chaine)
  Texte = Chaine
  While Left(Texte, Len(Separateur)) <> Separateur
    Texte = Right(Chaine, Position)
    Position = Position - 1
  Wend
  SearchText = Right(Chaine, Position)
End If
End Function

Private Sub Command1_Click()
Dim Phrase As String
Phrase = "Ca marche ?"
 'Affiche "arche ?"
 MsgBox SearchText(Phrase, "m", False), , ""
 'Affiche "Ca "
 MsgBox SearchText(Phrase, "m", True), , ""
End Sub

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
28 février 2008

si kkun pouvai maider sa serai cool merci :)
Messages postés
8
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
28 février 2008

salut je voudrai utiliser ton code mai j'ai un petit souci sa ne marche pa avec la chaine de carctere ke j'utilise

Private Sub Command1_Click()
Dim ligne As String
Dim Cobra
'je voudrai recupérer le 20
ligne = "Cobra : 20"
MsgBox SearchText(ligne, "Cobra : ", False), , ""
Cobra = SearchText(ligne, "Cobra : ", False)
Text2.Text = Cobra * 32
End Sub
Messages postés
12
Date d'inscription
vendredi 5 octobre 2001
Statut
Membre
Dernière intervention
24 juin 2002

;)
Messages postés
9
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
27 juin 2002

pas mal

@+

GiZmO
Messages postés
47
Date d'inscription
mardi 9 avril 2002
Statut
Membre
Dernière intervention
7 mars 2008

Tu as bien travaillé, ton code très propre, n'oublie pas de placer un test, quand le séparateur n'existe pas tu as une erreur.
J'ai une solution plus simple avec Instr et InstrRev :
Function SearchText(ByVal Chaine As String, ByVal Separateur As String, Optional ByVal Gauche As Boolean) As String
Dim Position As Integer
If Gauche = True Then
Position = InStrRev(Chaine, Separateur)
If Position <> 0 Then
SearchText = Mid$(Chaine, 1, Position - 1)
End If
Else
Position = InStr(1, Chaine, Separateur)
If Position <> 0 Then
SearchText = Mid$(Chaine, Position + 1)
End If
End If
End Function
Afficher les 6 commentaires

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.