Fonction Split et virgule [Résolu]

Messages postés
14
Date d'inscription
mardi 15 mars 2005
Dernière intervention
19 avril 2006
- - Dernière réponse : ggsab62
Messages postés
14
Date d'inscription
mardi 15 mars 2005
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+
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
3
Merci
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.

Dire « Merci » 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
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.
Messages postés
14
Date d'inscription
mardi 15 mars 2005
Dernière intervention
19 avril 2006
0
Merci
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
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
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.
Messages postés
14
Date d'inscription
mardi 15 mars 2005
Dernière intervention
19 avril 2006
0
Merci
Merci MANU pour ta reponse

ca fonctionne

A+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.