Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fichier csv et fonction split

5 réponses
Avatar
gars toff
Bonjour,

J'utilise la fonction split en vb.net pour extraire des données d'un fichier
csv.
Le soucis c'est si mes données comporte mon separateur je m'explique :
1;2;3 3 colonne pas de soucis
1;2;2;3 la j'ai toujours 3 colonne mais la colonne 2 ma valeur est 2;2, pour
regler le problème excel ajoute des separateur de texte : "1";"2;2";"3".
Comment faire avec le fonction split.

Merci

Toff

5 réponses

Avatar
Clive Lumb
"gars toff" a écrit dans le message de
news:
Bonjour,

J'utilise la fonction split en vb.net pour extraire des données d'un


fichier
csv.
Le soucis c'est si mes données comporte mon separateur je m'explique :
1;2;3 3 colonne pas de soucis
1;2;2;3 la j'ai toujours 3 colonne mais la colonne 2 ma valeur est 2;2,


pour
regler le problème excel ajoute des separateur de texte : "1";"2;2";"3".
Comment faire avec le fonction split.

Merci

Toff




D'abord chercher si la ligne contient ";" - si oui dropper le premier et
dernier caractères de la ligne puis faire un split sur ";".
Si ";" pas trouvé, alors faire un split sur ;

Astuce, pour simplifier l'écriture des " créer une constante Quote=chr$(34)
Avatar
Patrice Henrio
et pourquoi pas un replace

replace(TesDonnées, Chr(34)&";"&Chr(34),"MonSéparateur")
Puis spliter sur "MonSéparateur")


"Clive Lumb" a écrit dans le message
de news: %

"gars toff" a écrit dans le message
de
news:
Bonjour,

J'utilise la fonction split en vb.net pour extraire des données d'un


fichier
csv.
Le soucis c'est si mes données comporte mon separateur je m'explique :
1;2;3 3 colonne pas de soucis
1;2;2;3 la j'ai toujours 3 colonne mais la colonne 2 ma valeur est 2;2,


pour
regler le problème excel ajoute des separateur de texte : "1";"2;2";"3".
Comment faire avec le fonction split.

Merci

Toff




D'abord chercher si la ligne contient ";" - si oui dropper le premier et
dernier caractères de la ligne puis faire un split sur ";".
Si ";" pas trouvé, alors faire un split sur ;

Astuce, pour simplifier l'écriture des " créer une constante
Quote=chr$(34)




Avatar
Clive Lumb
"Patrice Henrio" a écrit dans le message de
news:
et pourquoi pas un replace

replace(TesDonnées, Chr(34)&";"&Chr(34),"MonSéparateur")
Puis spliter sur "MonSéparateur")



Il faudrait toujours detecter/enlever les " du début et de la fin de ligne,
donc pas de gain en lignes de code.
Avatar
Patrice Henrio
Ok j'avis oublié ces deux là mais une ligne type
TesDonnées=Mid(TesDonnées,2,Len(TesDonnées)-2)) devrait suffire non ?


"Clive Lumb" a écrit dans le message
de news:

"Patrice Henrio" a écrit dans le message de
news:
et pourquoi pas un replace

replace(TesDonnées, Chr(34)&";"&Chr(34),"MonSéparateur")
Puis spliter sur "MonSéparateur")



Il faudrait toujours detecter/enlever les " du début et de la fin de
ligne,
donc pas de gain en lignes de code.




Avatar
Clive Lumb
Patrice Henrio wrote:
Ok j'avis oublié ces deux là mais une ligne type
TesDonnées=Mid(TesDonnées,2,Len(TesDonnées)-2)) devrait suffire non ?




en effet,

Mais vu qu'on doit choisir entre le cas ; et ";" avant de le faire (o non),
autant splitter directement sur " ou ";" apres puisqu'on sait dans quel cas
on se trouve