Petite fonction de recherche et de remplacement de chaine dans une grande chaine

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 293 fois - Téléchargée 38 fois

Contenu du snippet

C'est une toute ch'tite fonction qui va remplacer une chaine dans une autre...

Source / Exemple :


'----------------------------------------------------------------------------------------
' Nom : RSTR_Remplace
'
' But : Permet de remplacer une partie d'une chaine par une autre
'
' Paramètres : pstrChaineComplete : Chaine complete avant traitement
'              pstrChaineCherchee : Chaine que l'on veut remplacer
'              pstrChaineRemplacement : Chaine de remplacement de la chaine cherchee
' Fonctions appelées : -
'
' Valeur de retour : Chaine de caractères si OK , "ERREUR" si... erreur :)
' Auteur     : Jean-Francis           Date : 14/11/2002
'----------------------------------------------------------------------------------------
Public Function RSTR_Remplace(ByVal pstrChaineComplete As String, ByVal pstrChaineCherchee As String, ByVal pstrChaineRemplacement As String) As String

On Error GoTo err:

Dim lngPosition As Long
Dim lngLongueur As Long

If LenB(pstrChaineRemplacement) = 0 Then
    Exit Function
End If

lngLongueur = Len(pstrChaineCherchee)

lngPosition = InStr(pstrChaineComplete, pstrChaineCherchee)

Do While lngPosition <> 0
    If lngPosition = 1 Then
        pstrChaineComplete = pstrChaineRemplacement & Mid$(pstrChaineComplete, lngLongueur + 1)
    Else
        pstrChaineComplete = Left$(pstrChaineComplete, lngPosition - 1) & pstrChaineRemplacement & Mid$(pstrChaineComplete, lngPosition + lngLongueur)
    End If
    lngPosition = InStr(pstrChaineComplete, pstrChaineCherchee)
Loop

RSTR_Remplace = pstrChaineComplete
    
Exit Function

err:
    RSTR_Remplace = "ERREUR"
    
End Function

Conclusion :


J'espère que ça servira autant qu'à moi car ça m'a été bien utile ces derniers temps :)
Si vous avez mieux par contre, n'hésitez pas à me le communiquer par email...

A voir également

Ajouter un commentaire

Commentaires

zefri
Messages postés
33
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
11 décembre 2002
-
Faute de Replace, Mid tu connais ? Dans le genre exercice de style on peut avantageusement remplacer ta fonction par celle-ci

Function Pseudo_Replace(chaine As String, mot As String, substitut As String) As String

Dim i As Integer, position As Integer
Dim debut As String, fin As String

position = InStr(1, chaine, mot)
If position > 0 Then
debut = Mid(chaine, 1, position - 1)
fin = Mid(chaine, Len(debut) + Len(mot) + 1)
Pseudo_Replace = debut + substitut + fin
Else
Pseudo_Replace = chaine
End If
End Function


Mais bon, pourquoi faire simple quand on peut faire compliqué !
cs_shaoni
Messages postés
186
Date d'inscription
mercredi 11 avril 2001
Statut
Membre
Dernière intervention
12 septembre 2007
-
et puis cette fonction vient a point pour les pocesseur d'une version antérieur a vb6 ! ou replace,split et co n'existaient pas !
JeanFrancis68
Messages postés
32
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
3 juin 2003
-
Je me suis renseigné sur cette fonction et c justement la raison qui explique que j'en ai refait une... Elle m'a déjà posé quelques soucis :)
Mais effectivement, dans la plupart des cas, cette fonction est amplement suffisante.
cs_Warny
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
Je t'invite à te renseigner sur la fonction Replace...

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.