Bonjour,
je cherche une solution en VB6 pour remplacer une partie d'une chaîne
de caractère par une autre chaîne de caractère. Aucune des chaînes de
caractères n'a une taille fixe, un coup sur l'autre elles peuvent
avoir des tailles complètement différente, et la partie à insérée dans
la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne
"5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de
ma première chaîne disparais donc. Mais je veux aussi pouvoir par
exemple, mettre ma chaine "999" entre '1' et '4' de ma première
chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ?
Merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Makmaze" a écrit dans le message de news:
Bonjour, je cherche une solution en VB6 pour remplacer une partie d'une chaîne de caractère par une autre chaîne de caractère. Aucune des chaînes de caractères n'a une taille fixe, un coup sur l'autre elles peuvent avoir des tailles complètement différente, et la partie à insérée dans la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne "5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de ma première chaîne disparais donc. Mais je veux aussi pouvoir par exemple, mettre ma chaine "999" entre '1' et '4' de ma première chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ?
Hello, une façon de faire:
Public Function ReplaceInString(ByVal s As String, ByVal pa As String, ByVal pb As String, ByRef result As Boolean) As String Dim pos As Integer Dim newStr As String
pos = InStr(s, pa) ' cherche le pattern pa dans s If pos <> 0 Then ' si trouve If pos = 1 Then ' cas particulier du pattern en debut de chaine If s = pa Then ' cas particulier : remplace tout newStr = pb Else newStr = pb & Mid$(s, Len(pa) + 1) ' sinon, met le nouveau pattern et ajoute la fin de la chaine End If Else ' cas le plus general newStr = Mid$(s, 1, pos - 1) & pb & Mid$(s, pos + Len(pa)) End If result = True ' resultat ok Else ' sinon on retourne la chaine sans changement newStr = s ' retourne la chaine non modifiee result = False ' resultat pas ok End If ReplaceInString = newStr End Function
JM
Merci.
"Makmaze" <makmaze@invalid.com> a écrit dans le message de
news:nmansv85nre9tor4fe9ei5dc69m32nm5q2@4ax.com...
Bonjour,
je cherche une solution en VB6 pour remplacer une partie d'une chaîne
de caractère par une autre chaîne de caractère. Aucune des chaînes de
caractères n'a une taille fixe, un coup sur l'autre elles peuvent
avoir des tailles complètement différente, et la partie à insérée dans
la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne
"5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de
ma première chaîne disparais donc. Mais je veux aussi pouvoir par
exemple, mettre ma chaine "999" entre '1' et '4' de ma première
chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ?
Hello,
une façon de faire:
Public Function ReplaceInString(ByVal s As String, ByVal pa As String, ByVal
pb As String, ByRef result As Boolean) As String
Dim pos As Integer
Dim newStr As String
pos = InStr(s, pa) ' cherche le pattern pa dans s
If pos <> 0 Then ' si trouve
If pos = 1 Then ' cas particulier du pattern en debut de chaine
If s = pa Then ' cas particulier : remplace tout
newStr = pb
Else
newStr = pb & Mid$(s, Len(pa) + 1) ' sinon, met le nouveau
pattern et ajoute la fin de la chaine
End If
Else ' cas le plus general
newStr = Mid$(s, 1, pos - 1) & pb & Mid$(s, pos + Len(pa))
End If
result = True ' resultat ok
Else ' sinon on retourne la chaine sans changement
newStr = s ' retourne la chaine non modifiee
result = False ' resultat pas ok
End If
ReplaceInString = newStr
End Function
Bonjour, je cherche une solution en VB6 pour remplacer une partie d'une chaîne de caractère par une autre chaîne de caractère. Aucune des chaînes de caractères n'a une taille fixe, un coup sur l'autre elles peuvent avoir des tailles complètement différente, et la partie à insérée dans la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne "5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de ma première chaîne disparais donc. Mais je veux aussi pouvoir par exemple, mettre ma chaine "999" entre '1' et '4' de ma première chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ?
Hello, une façon de faire:
Public Function ReplaceInString(ByVal s As String, ByVal pa As String, ByVal pb As String, ByRef result As Boolean) As String Dim pos As Integer Dim newStr As String
pos = InStr(s, pa) ' cherche le pattern pa dans s If pos <> 0 Then ' si trouve If pos = 1 Then ' cas particulier du pattern en debut de chaine If s = pa Then ' cas particulier : remplace tout newStr = pb Else newStr = pb & Mid$(s, Len(pa) + 1) ' sinon, met le nouveau pattern et ajoute la fin de la chaine End If Else ' cas le plus general newStr = Mid$(s, 1, pos - 1) & pb & Mid$(s, pos + Len(pa)) End If result = True ' resultat ok Else ' sinon on retourne la chaine sans changement newStr = s ' retourne la chaine non modifiee result = False ' resultat pas ok End If ReplaceInString = newStr End Function
JM
Merci.
Zoury
Salut! :O)
La fonction Replace() effectue ce travail : '*** Option Explicit
Private Sub Form_Load()
Dim s As String
s = "1234" s = Replace(s, "2", "5678") Debug.Print s ' 1567834
s = "1234" s = Replace(s, "23", "999") Debug.Print s ' 19994
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Makmaze" wrote in message news:
Bonjour, je cherche une solution en VB6 pour remplacer une partie d'une chaîne de caractère par une autre chaîne de caractère. Aucune des chaînes de caractères n'a une taille fixe, un coup sur l'autre elles peuvent avoir des tailles complètement différente, et la partie à insérée dans la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne "5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de ma première chaîne disparais donc. Mais je veux aussi pouvoir par exemple, mettre ma chaine "999" entre '1' et '4' de ma première chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ? Merci.
Salut! :O)
La fonction Replace() effectue ce travail :
'***
Option Explicit
Private Sub Form_Load()
Dim s As String
s = "1234"
s = Replace(s, "2", "5678")
Debug.Print s ' 1567834
s = "1234"
s = Replace(s, "23", "999")
Debug.Print s ' 19994
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Makmaze" <makmaze@invalid.com> wrote in message
news:nmansv85nre9tor4fe9ei5dc69m32nm5q2@4ax.com...
Bonjour,
je cherche une solution en VB6 pour remplacer une partie d'une chaîne
de caractère par une autre chaîne de caractère. Aucune des chaînes de
caractères n'a une taille fixe, un coup sur l'autre elles peuvent
avoir des tailles complètement différente, et la partie à insérée dans
la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne
"5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de
ma première chaîne disparais donc. Mais je veux aussi pouvoir par
exemple, mettre ma chaine "999" entre '1' et '4' de ma première
chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ?
Merci.
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Makmaze" wrote in message news:
Bonjour, je cherche une solution en VB6 pour remplacer une partie d'une chaîne de caractère par une autre chaîne de caractère. Aucune des chaînes de caractères n'a une taille fixe, un coup sur l'autre elles peuvent avoir des tailles complètement différente, et la partie à insérée dans la première chaîne peux être entre deux bornes de différentes tailles.
J'ai par exemple une chaîne "1234", je veux pouvoir mettre ma chaîne "5678" entre '1' et '3' et donc obtenir "1567834", le caractère '2' de ma première chaîne disparais donc. Mais je veux aussi pouvoir par exemple, mettre ma chaine "999" entre '1' et '4' de ma première chaine, j'obtient '19994'
Y a t'il une fonction pour faire ça en VB6 ? Merci.