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 !

PETITE FONCTION DE RECHERCHE ET DE REMPLACEMENT DE CHAINE DANS UNE GRANDE CHAINE


Information sur la source

Catégorie :Texte Niveau : Débutant Date de création : 28/11/2002 Date de mise à jour : 28/11/2002 10:23:51 Vu : 2 630

Note :
Aucune note

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

Description

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

 

Source

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

 

Commentaires et avis

signaler à un administrateur
Commentaire de Warny le 28/11/2002 10:31:21

Je t'invite à te renseigner sur la fonction Replace...

signaler à un administrateur
Commentaire de JeanFrancis68 le 28/11/2002 10:36:03

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.

signaler à un administrateur
Commentaire de shaoni le 28/11/2002 13:54:45

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 !

signaler à un administrateur
Commentaire de zefri le 29/11/2002 00:01:43

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 &gt; 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é !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



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,250 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é.