Comment remplacer des caracteres speciaux dans une chaine

a751293 Messages postés 7 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 17 janvier 2003 - 17 janv. 2003 à 11:06
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 17 janv. 2003 à 16:22
voila je suis debutante dans le domaine de la programmation
En gros j'ai une chaine de caractere
*par ex "le jour se leve"il faut que je supprime tous les blancs et les remplacer par _
pour l'instant avec le programme que j'ai fait le resultat est :
"le_jour se leve"
les autres blancs ne sont pas modifies
voici mon code:

NomAppli = "'" + Text1.Text + "'"
temp = (InStr(NomAppli, " "))
remplace = "_"
resultat = left(NomAppli, temp - 1) & remplace & right(NomAppli, Len(NomAppli) - temp)
msgbox(resultat)

je vous remercie d'avance

9 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 janv. 2003 à 11:15
Il te suffit de faire une boucle sur ton texte pour remplacer tout les espaces :

For INT_For1 = 0 To Len(nomappli)
temp = (InStr(nomappli, " "))
If temp = 0 Then
Exit For
End If
nomappli = Left(nomappli, temp - 1) & "_" & Right(nomappli, Len(nomappli) - temp)
Next INT_For1

Ainsi, le programme teste toute la chaîne, et lorsqu'il ne trouve plus d'espace, il quitte la boucle. Par contre, il ne faut pas que ta chaîne commence avec un espace, sinon, ca ne marchera pas.

DARK SIDIOUS
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
17 janv. 2003 à 11:27
tmp = "le jour se leve"
Resultat = Replace(tmp, " ", "_")

marche tres bien :)))) du moins en VB6

:clown) BasicInstinct :clown)
0
a751293 Messages postés 7 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 17 janvier 2003
17 janv. 2003 à 12:18
Merci beaucoup de ton aide
0
a751293 Messages postés 7 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 17 janvier 2003
17 janv. 2003 à 12:31
j' ai un nouveau pb voila ton prog marche très bien
mais il faut en plus que je remplace par ex é par e
à par a ... et tout ça dans la meme fonction
la chaine de caractères à la fin doit etre dépourvué de tous caractères spéciauxj'ai essayé avec select case mais cela ne marche pas je pense que ma syntaxe est fausse ou alors je ne sais pas peux tu m'aider à nouveau
merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
17 janv. 2003 à 14:02
utilise la fonction replace :)

:clown) BasicInstinct :clown)
0
a751293 Messages postés 7 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 17 janvier 2003
17 janv. 2003 à 14:12
La fonction replace n'est pas definie sous vb5
cela ne marche pas voici mon code qui ne marche pas
Dim i As Integer
Dim NomAppli As String
Dim Var As String
Dim temp As Integer

NomAppli = "'" + Text1.Text + "'"
For i = 0 To Len(NomAppli)
temp = (InStr(NomAppli, "Var"))
Select Case temp
Case Var = " "
If temp <> 0 Then
NomAppli = left(NomAppli, temp - 1) & "_" & right(NomAppli, Len(NomAppli) - temp)
End If
Case Var = "é"
If temp <> 0 Then
NomAppli = left(NomAppli, temp - 1) & "e" & right(NomAppli, Len(NomAppli) - temp)
End If
End Select

Next i

Text2.Text = "'" + NomAppli + "'"
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
17 janv. 2003 à 14:29
im me semble que t'as oublié d'affecter les valeur a ton var
:clown) BasicInstinct :clown)
0
a751293 Messages postés 7 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 17 janvier 2003
17 janv. 2003 à 14:43
temp = (InStr(NomAppli, "'" + Var + "'"))
cela ne marche pas j'avais deja essaye
je te remercie beaucoup de tout ton aide
passe un bon week end
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
17 janv. 2003 à 16:22
Bonjour

En se rappelant que Mid est à la fois une fonction et une instruction, tu peux faire un truc du genre

For i = 1 to Len(NomAppli)     If Mid(NomAppli, i, 1) " " Then Mid(NomAppli, i, 1) "_"     If Mid(NomAppli, i, 1) "à" Then Mid(NomAppli, i, 1) "a"     If Mid(NomAppli, i, 1) "é" Then Mid(NomAppli, i, 1) "e"
     ' etc ...
Next i
0
Rejoignez-nous