Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 999 fois - Téléchargée 45 fois
' ---------------------------------------------------------------------------- ' Description ' Renvoie une chaîne dans laquelle une sous-chaîne spécifiée a été ' remplacée plusieurs fois par une autre sous-chaîne. ' Syntaxe ' Replace(expression, find, replacewith[, start[, count[, compare]]]) ' ' expression ' Expression de chaîne contenant une sous-chaîne à remplacer. ' find ' Sous-chaîne recherchée. ' replacewith ' Sous-chaîne de remplacement. ' start (Facultatif) ' Position dans l'argument expression où la recherche de sous-chaîne ' doit commencer. Si elle est omise, la position 1 est prise par défaut. ' count (Facultatif) ' Nombre de remplacements de sous-chaîne à effectuer. Si cette valeur ' est omise, la valeur par défaut -1, qui signifie tous les remplacements ' possibles, est employée. ' compare (Facultatif) ' Valeur numérique indiquant le type de comparaison à utiliser lors de ' l'évaluation des sous-chaînes. L'argument compare peut être omis ou ' prendre la valeur 0, ou 1. ' Indiquez la valeur 0 pour effectuer une comparaison binaire. ' Indiquez la valeur 1 pour effectuer une comparaison de texte, ' sans différenciation des majuscules et des minuscules. ' ' NOTES : vbDatabaseCompare n'est pas émulé. ' Version: 1.0 - 20/07/2002 ' Auteur : Bigane@tiscalinet.ch ' ---------------------------------------------------------------------------- Public Function Replace( _ ByVal expression As String, _ ByVal find As String, _ ByVal replacewith As String, _ Optional ByVal start As Long = 1, _ Optional ByVal count As Long = -1, _ Optional ByVal compare As Long) Dim lenFind As Long Dim lenNext As Long Dim lenReplace As Long Dim lenExpression As Long 'Emulation de Const vbUseCompareOption = -1 If IsEmpty(compare) Or _ ((compare <> vbBinaryCompare) And (compare <> vbTextCompare)) Then compare = IIf("A" = "a", vbTextCompare, vbBinaryCompare) End If If start > Len(expression) Then Replace = vbNullString Else If Not ((start < 1) Or _ (start > Len(expression)) Or (find = vbNullString)) Then lenFind = Len(find) lenReplace = Len(replacewith) start = InStr(start, expression, find, compare) Do While (start<>0) And (count<>0) lenExpression = Len(expression) lenNext = start + lenFind expression = Mid$(expression, 1, start - 1) & replacewith & _ IIf(lenNext <= lenExpression, _ Mid$(expression, lenNext), vbNullString) count = count - 1 start = InStr(start + lenReplace, expression, find, compare) Loop End If Replace = expression End If End Function
12 févr. 2004 à 22:02
If Start > 1 Then Replace = Mid$(Replace, Start)
J'ai retrouvé cette idée sur un site étranger :
http://www.programmazione.it/index.php?entity=etip&idTip=110&idArea=1
C'est marrant, on a toujours réinventé la roue, sa fonction replace me semble correcte, a voir ...
13 août 2003 à 13:12
A+
13 août 2003 à 10:29
C trop fort pile poil ce que je cherchais
29 juil. 2002 à 14:35
Do While start And count
remplacé par
Do While (start<>0) And (count<>0)
Le source est à jour.
Bigane
20 juil. 2002 à 21:59
Pour info il existe aussi
http://www.vbfrance.com/article.asp?Val=3008
pour ceux qui utilisent vb5
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.