Fonction Split et virgule

Résolu
ggsab62 Messages postés 14 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 19 avril 2006 - 11 oct. 2005 à 11:48
ggsab62 Messages postés 14 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 19 avril 2006 - 11 oct. 2005 à 14:25
Bonjour à tous,

G un pb avec la fonction split, j'explique :

G une chaine de caractères avec comme ';' comme séparateur
donc je fais split(chaine, ";")

tout va bien jusqu'à ce qu'il rencontre une virgule ou dans mon cas un chiffre avec décimale.

EX : chaine="ttt;ssdf;zert;tuij;zert;0,1;gfdfg;gdfg;5;35"

il me prend "0" comme case et il s'arrête.

Si vous avez une idée pour remédier à ce problème,

c assez urgent

merci beaucoup.

A+

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
11 oct. 2005 à 13:18
Il faut remplacer :



Input #1, chaine ' **** Données Comp



par :



Line Input #1, chaine ' **** Données Comp





Input #1 va récupérer une ligne, jusqu'à l'élément "virgule"

Line Input #1 récupère la ligne complète.



Ce n'est pas Split qui pose problème, c'est Input !




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
11 oct. 2005 à 12:07
pas de problème chez moi avec le code suivant :



Dim chaine As String

Dim tablo() As String

Dim stemp As String

chaine = "ttt;ssdf;zert;tuij;zert;0,1;gfdfg;gdfg;5;35"

tablo = Split(chaine, ";")

For l = LBound(tablo) To UBound(tablo)

stemp = stemp & tablo(l) & vbCrLf

Next l

MsgBox stemp



Je ne vois pas pourquoi Split ferait des bétises avec la virgule. Split fonctionne très bien avec n'importe quel séparateur...



Peux-tu déposer ton code ici (du moins la partie concernée, les lignes
précédentes et suivantes). C'est toi qui doit faire une mauvaise
bidouille ...




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
ggsab62 Messages postés 14 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 19 avril 2006
11 oct. 2005 à 12:40
MERCI DE TA REPONSE

MAIS CA NE MARCHE PAS

voila la procedure que j utilise
je lis un fichier avec comme chaine le contenu de la variable chaine

Public Sub test()
Dim chaine As String
Dim tablo() As String
Dim stemp As String



With FPrincipal.CommonDialog
.DialogTitle = "Ouvrir Fichier"
.Filter = "Fichiers de Texte (*.TXT)|*.txt"
.InitDir = App.path
'.FileName = "test" 'valueName
.FilterIndex = 2
.Flags = cdlOFNCreatePrompt And cdlOFNOverwritePrompt
.ShowOpen
End With


Open FPrincipal.CommonDialog.FileName For Input As #1


Input #1, chaine ' **** Données Comp



'chaine = "PARAV;[CODSOC];'20031007';'GNC';'CTRMGE';'VTEL';' ';' ';' ';' ';' ';' ';1;0;0;0;0;0,1;0;0;'O'"
tablo = Split(chaine, ";")
For l = LBound(tablo) To UBound(tablo)
stemp = stemp & tablo(l) & vbCrLf
Next l
MsgBox stemp


Close #1
End Sub

merci d avance
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
11 oct. 2005 à 13:19
d'où l'intérêt de déposer son code ...




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0

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

Posez votre question
ggsab62 Messages postés 14 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 19 avril 2006
11 oct. 2005 à 14:25
Merci MANU pour ta reponse

ca fonctionne

A+
0
Rejoignez-nous