---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 **********