SÉRARER LES MOTS D'UNE CHAINE DE CARACTÈRES

Lordryck Messages postés 2 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 28 juin 2003 - 28 juin 2003 à 07:30
anice2 Messages postés 6 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 9 février 2008 - 22 juin 2009 à 01:47
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/7685-serarer-les-mots-d-une-chaine-de-caracteres

anice2 Messages postés 6 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 9 février 2008
22 juin 2009 à 01:47
Dim TestArray() As String
TestArray() = Split("someone@example.com", "@")
MsgBox TestArray(0)
MsgBox TestArray(1)
Utilisateur anonyme
15 oct. 2004 à 10:08
Et quand il y a des virgules dans les phrases, le split ne marche plus
La méthode de gabchampagne est pas mal mais il faudrai ajouter aussi quand le caractère est ", "
Mais on peut le faire aussi avec points, les point virgule ...

Bonne prog
Utilisateur anonyme
20 juil. 2003 à 21:33
Certes, nous sommes tous là pour apprendre. Je reconnais que j'étais un poil sarcastique dans mon premier commentaire... Il est vrai que si tu connaissais Split, tu n'aurais certainement pas posté ta source... :-)
Sur ce bonne prog à tous !
gabchampagne Messages postés 216 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 5 mai 2004
19 juil. 2003 à 22:54
j'avoue que je ne savait pas que split existait.
Utilisateur anonyme
15 juil. 2003 à 01:07
En effet... Cette solution, peut-être ?

Dim LesMots() As String
LesMots Split(MonTexte, " ") 'ou LesMots Split(MonTexte)
For I = 0 To UBound(LesMots)
If LesMots(I) <> "" Then List1.AddItem LesMots(I)
Next I
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
14 juil. 2003 à 23:47
La parole est à la défense :
Avec MonTexte = " Ceci est un texte"
(ça contient 4 mots mais c'est bourré d'espaces)
LesMots Split(MonTexte, " ") ou LesMots Split(MonTexte)
UBound(LesMots) est largement supérieur à 4.
Utilisateur anonyme
29 juin 2003 à 08:48
Non puisque UBound part de 0, comme pour les éléments d'une Listbox. C'est donc bien :
For I = 0 To UBound(LesMots)

gabchampagne > Tu as l'air hyper content de ta source (on dirait qu'elle est révolutionnaire), tant mieux pour toi :)
J'ai bien rigolé quand j'ai vu ton 2ème paragraphe "Ce qui est formidable..." parce que, en proposant une source qui se charge de séparer des mots, il vaut mieux en effet qu'elle affiche 4 mots si tu lui en donnes 4... Logique... :-)
N'empêche que tu as dû faire une sacrée tête quand tu as vu l'alternative de Lordryck... non ?
+
cs_Pulcocitron Messages postés 5 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 24 avril 2004
28 juin 2003 à 14:58
Je trouve la solution proposée par Lordryck plus attrayante, cependant, je crois que l'on peut se contenter de split(MonTexte), le séparateur est en option est par défaut sa valeur est l'espace " " (enfin je crois).
Par contre il me semble bien qu'il y a un décalage dans ubound, mieux vaut faire for i = 0 to ubound(LesMots)-1; car ubound indique le nombre d'éléments (et non l'index du dernier...)
De toute façon, je ne crois pas que celà créé d'erreur pour des listes lorsque l'index est hors de la définition, c'est juste un détail...
Lordryck Messages postés 2 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 28 juin 2003
28 juin 2003 à 07:30
autre soluce:

Dim LesMots() as string
LesMots = split(MonTexte, " ")
for i = 0 to ubound (LesMots)
List1.AddItem LesMots(i)
next i
Rejoignez-nous