---Soumis par Dev Ashish---
Remplacer un caractère par un autre dans une chaîne.
(Q) Comment puis-je remplacer un caractère par un autre, dans un chaîne?
(A) Pour remplacer le point dans "Dev.Ashish" avec un espace, appeler la fonction fstrTran comme suit:
?fstrTran("Dev.Ashish","."," ")
'************ Code Start **********
Function fstrTran(ByVal sInString As String, _
sFindString As String, _
sReplaceString As String) As String
Dim iSpot As Integer, iCtr As Integer
Dim iCount As Integer
iCount = Len(sInString)
For iCtr = 1 To iCount
iSpot = InStr(1, sInString, sFindString)
If iSpot > 0 Then
sInString = Left(sInString, iSpot - 1) & _
sReplaceString & _
Mid(sInString, iSpot + Len(sFindString))
Else
Exit For
End If
Next
fstrTran = sInString
End Function
'************ Code End **********
De Alden Streeter:
La fonction fStrTran plante dans deux case, à savoir:
1. sFindString est une chaîne vide. e.g. (dans la fenêtre d'exécution immédiate):
?fstrTran("Dev.Ashish","","*")
**********Dev.Ashish2. sFindString et sReplaceString contient un caractère répété:
?fstrTran("Dev.Ashish",".", "*.*")
Dev**********.**********Ashish
?fstrTran("Dev....Ashish","..", ".")
Dev.Ashish
Si un des cas précédants est possible, le développeur peut utiliser cette fonction de remplacement. Cette fonction peut également être plus rapide si la chaîne cherchée est longue et si la substitution aura lieu en plusieurs places.
''************ Code Start **********
'This code was originally written by Alden Streeter.
'It is not to be altered or distributed,
'except as part of an application.
'You are free to use it in any application,
'provided the copyright notice is left unchanged.
'Ce code fut originalement écrit par Alden Streeter.
'Il ne peut être altéré ni distribué,
'si ce n'est à l'intérieur d'une application.
'Vous êtes libre de l'utiliser dans votre application,
'en autant que cette note soit laissée inchangée
'
'Code Courtesy of
'Alden Streeter
'
Function FindAndReplace(ByVal strInString As String, _
strFindString As String, _
strReplaceString As String) As String
Dim intPtr As Integer
If Len(strFindString) > 0 Then 'catch if try to find empty string
Do
intPtr = InStr(strInString, strFindString)
If intPtr > 0 Then
FindAndReplace = FindAndReplace & left(strInString, intPtr - 1) & _
strReplaceString
strInString = Mid(strInString, intPtr + Len(strFindString))
End If
Loop While intPtr > 0
End If
FindAndReplace = FindAndReplace & strInString
End Function
'************ Code End **********