Fonction Split et virgule [Résolu]

ggsab62 14 Messages postés mardi 15 mars 2005Date d'inscription 19 avril 2006 Dernière intervention - 11 oct. 2005 à 11:48 - Dernière réponse : ggsab62 14 Messages postés mardi 15 mars 2005Date d'inscription 19 avril 2006 Dernière intervention
- 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

econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 11 oct. 2005 à 13:18
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 11 oct. 2005 à 12:07
0
Utile
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.
ggsab62 14 Messages postés mardi 15 mars 2005Date d'inscription 19 avril 2006 Dernière intervention - 11 oct. 2005 à 12:40
0
Utile
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
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 11 oct. 2005 à 13:19
0
Utile
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.
ggsab62 14 Messages postés mardi 15 mars 2005Date d'inscription 19 avril 2006 Dernière intervention - 11 oct. 2005 à 14:25
0
Utile
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.