PURGER UNE CHAINE DE CARACTERE DE SES ESPACES INUTILES

morphee - 19 févr. 2001 à 11:58
fatimazahra86 Messages postés 16 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 17 juin 2009 - 22 avril 2009 à 11:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/431-purger-une-chaine-de-caractere-de-ses-espaces-inutiles

fatimazahra86 Messages postés 16 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 17 juin 2009
22 avril 2009 à 11:21
slt
j'ai essaié de reutiliser votre code avec une richtext au lieu d'un textbox.
ca marche,
mais qd je lit un fichier ds le richtext la fonction ne suprime pas le dernièr espace de chaque lignes.
je vx savoir ou se trouve le pb?
c urgen
merci
jaguar4you Messages postés 1 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 26 février 2008
26 févr. 2008 à 23:02
eske on peu travailé just avec left , len ,right c si possibl aid moi c urgent c un exam plz le plusto possibl
rambc Messages postés 224 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 29 mars 2009
26 août 2004 à 12:05
Pour éviter un bug si TexteAModifier est une suite d'espaces.


Sub EnleverDesDoublesEspaces()

Dim TexteAModifier As String
TexteAModifier = " Bonjour tout le monde ! "

Do While InStr(1, TexteAModifier, " ")
TexteAModifier = Replace(TexteAModifier, " ", " ")
Loop

If TexteAModifier = " " Then
TexteAModifier = ""
Else
If Mid(TexteAModifier, 1, 1) = " " Then
TexteAModifier = Right(TexteAModifier, Len(TexteAModifier) - 1)
End If

If Mid(TexteAModifier, Len(TexteAModifier), 1) = " " Then
TexteAModifier = Left(TexteAModifier, Len(TexteAModifier) - 1)
End If
End If

MsgBox "||" + TexteAModifier + "||"

End Sub
rambc Messages postés 224 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 29 mars 2009
26 août 2004 à 12:01
Sub EnleverDesDoublesEspaces()

Dim TexteAModifier As String
TexteAModifier = " Bonjour tout le monde ! "

Do While InStr(1, TexteAModifier, " ")
TexteAModifier = Replace(TexteAModifier, " ", " ")
Loop

If Mid(TexteAModifier, 1, 1) = " " Then
TexteAModifier = Right(TexteAModifier, Len(TexteAModifier) - 1)
End If

If Mid(TexteAModifier, Len(TexteAModifier), 1) = " " Then
TexteAModifier = Left(TexteAModifier, Len(TexteAModifier) - 1)
End If

MsgBox "||" + TexteAModifier + "||"

End Sub
erreurs404 Messages postés 117 Date d'inscription lundi 23 octobre 2000 Statut Membre Dernière intervention 12 août 2009
7 juin 2002 à 12:40
en effet c'est plus simple en faisant Replace(string, " ", "")
morphee a raison, sauf qu'un trim n'est pas nécessaire
je joint un petit exemple
La technique suivante : Text1 = Left(Text1, Len(Text1) - 1) est pratique pour economiser une variable et un test de sortie de boucle, mais des que la chaine devient tres grande, cette affectation est tres longue, il vaut donc mieux utiliser la fonction mid() et une variable temporaire supplementaire
Il y a plus simple, il suffit d'utiliser la fct Replace() et lui dire de supprimer les espaces.Faire un trim pour effacer les espaces sur les extrémitées.