Split avec plusieurs espaces de suite [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2004
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
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

8 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
65
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 336 internautes nous ont dit merci ce mois-ci

Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Salut.
Fait une fonction qui épure des espaces ta string avant de la splitter.
A+
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Tu peux tester quel est le caractère suivant, et si c'est un espace tu passe
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
19
cboulas > Pas avec Split.

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

Manu
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
65
Salut obivatel
Avant de faire le split, remplace les espaces multiples en simple :
Chaine = Replace(Chaine, " ", " ")

Vala
Jack
Messages postés
2
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2004

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
Ce qui nous donne :

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

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
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