Split avec plusieurs espaces de suite

Résolu
cs_obivatel Messages postés 2 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 24 septembre 2004 - 24 sept. 2004 à 16:56
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 24 sept. 2004 à 21:33
bonjour,
j'utilise split pour ranger des sous-chaines dans un tableau avec espace comme séparateur.
Mais parfois il y a plus de 1 espace entre 2 chaines et ça me décale tout.
Quelqu'un sait comment faire comprendre à la fonction split de VB qu'il faut considérer plusieurs espaces de suite comme un seul séparateur ?

obivatel
A voir également:

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 sept. 2004 à 19:47
re obivatel
Oui, désolé, je n'avais pas saisi le code avec les bornes qui vont bien, ce qui fait que le double espace (2e argument) a été converti en simple.
Voilà la bonne instruction (j'espère) :
Chaine = Replace(Chaine, "  ", " ")

Le premier " " contient deux espaces, et le second " ", un seul.
Eventuellement, met plusieurs fois cette instruction à la suite, car si ton texte comporte trois espaces à la suite, il faudrait exécuter deux fois l'instruction pour n'en retrouver qu'un.

Vala
Jack
3
Fulgy Messages postés 85 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 5 octobre 2004
24 sept. 2004 à 17:10
Salut.
Fait une fonction qui épure des espaces ta string avant de la splitter.
A+
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
24 sept. 2004 à 17:11
Tu peux tester quel est le caractère suivant, et si c'est un espace tu passe
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
24 sept. 2004 à 17:37
cboulas > Pas avec Split.

La solution de Fulgy me semble être la plus appropriée.

Manu
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 sept. 2004 à 18:05
Salut obivatel
Avant de faire le split, remplace les espaces multiples en simple :
Chaine = Replace(Chaine, " ", " ")

Vala
Jack
0
cs_obivatel Messages postés 2 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 24 septembre 2004
24 sept. 2004 à 18:21
hello jack
j'ai essayé mais ça remplace chaque espace par un autre et à la fin il y a toujours autant de blancs multiples
obivatel
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 sept. 2004 à 21:12
Ce qui nous donne :

Dim Tab() AS String
Tab = Split ( Replace(Chaine, " ", " ") , " ")

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 sept. 2004 à 21:33
Pour info, aucun formattage n'est fait sur les textes saisis...

l'HTML fais que deux espaces consécutifs n'en affichent qu'un..

solution, utiliser les META caractères; en clair : "& n b s p ;" (sans les espaces ;) ) pour faire un espace

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
Rejoignez-nous