SUPPRIMER LES ESPACES INUTILES D'UNE PHRASE

The MIT - 20 sept. 2001 à 23:08
wanyans Messages postés 1 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 juin 2011 - 24 juin 2011 à 18:57
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/8700-supprimer-les-espaces-inutiles-d-une-phrase

wanyans Messages postés 1 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
24 juin 2011 à 18:57
Ces fonctions ne fonctionnent pas!!
MizerskiW Messages postés 1 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 14 avril 2011
14 avril 2011 à 19:30
Function ne marche pas
cs_cyberfred Messages postés 3 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 30 avril 2002
30 avril 2002 à 15:33
Avec qq modif on peut supprimer tous les espaces d'une chaine :

Public Function DelAllSpace(Chaine)
Dim ChaineCopy, i, NbrCarToEnd, Part1, Part2

ChaineCopy = LTrim(Chaine)
ChaineCopy = RTrim(ChaineCopy)

i = InStr(1, ChaineCopy, " ")

While i <> 0
NbrCarToEnd = Len(ChaineCopy) - (i - 1)
Part1 = Mid(ChaineCopy, 1, i - 1)
Part2 = Mid(ChaineCopy, i + 1, NbrCarToEnd)
ChaineCopy = Part1 & Part2
i = InStr(1, ChaineCopy, " ")
Wend

DelAllSpace = ChaineCopy
End Function

Et voila !
erreur!!
Les boucles sont ce qu'il y a de plus lent! TheMit a raison.
Je t'envoie un mail avec un fichier attaché pour te montrer un truc avec les expressions régulieres.
VBS client bien entendu!
Et en plus ma fonction marche en VBS et VB!
Oui mais a mon avis le serveur met plus de tps avec Les expressions régulières! Faudrait mesurer!
ok ca a l'air sympathique mais c'est bien des boucle pour gerer du string, essayer d'utiliser les Expressions regulieres :

faites un replace avec la regex suivante : /s(2,*)

En RegEx, Le /s represente les separateurs de texte , le (2,*) specifie la portée donc , on recherche les séparateurs de plus de 2 elements.

ainsi il suffit de remplacer le elements matchés par un simple espace et le tour est joué tres rapidement.