VB: Fichiers séquentiels CSV

Fermé
Utilisateur anonyme - Modifié par CapHDdF le 20/06/2012 à 16:01
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 juin 2012 à 01:57
Bonjour,

J'aimerais pouvoir récupérer les valeurs d'un fichier CSV avec Visual Basic.
J'ai essayé simplement ce bout de programme pour constater le comportement.

Open "C:\Users\Hervé Delvaux\Downloads\BE24001556339738EUR_231211-120612.CSV" For Input As #1 
Do While Not EOF(1) 

    Input #1, A 
    MsgBox (A) 

Loop 


Je sais que cette méthode part du principe que les valeurs sont entre guillemets et séparées par des virgules. Que dois-je ajouter pour spécifier que le séparateur est un ";" ?

lorsque j'essaye de lire la ligne:

"2012-0042";"12/06/2012";"12/06/2012";"200,00";"EUR";"xxxx xxxx xxxx xxxx ";"M.MME DELVAUX DE FENFFE - BORREMAN RUE xxxxx xx xxxx BRUXELLES xxxx xxxx xxxx xxxx BIC BDCHBE22 COMMUNICATION : soldes juillet DATE VALEUR : 12/06/2012";"xxxx xxxx xxxx xxxx ";

Il me la décompose en 3 morceaux ainsi:

2012-0042

;"12/06/2012";"12/06/2012";"200

00";"EUR";"xxxx xxxx xxxx xxxx ";"M.MME DELVAUX DE FENFFE - BORREMAN RUE xxxxx xx xxxx BRUXELLES xxxx xxxx xxxx xxxx BIC BDCHBE22 COMMUNICATION : soldes juillet DATE VALEUR : 12/06/2012";"xxxx xxxx xxxx xxxx ";



Déjà là je comprends pas la logique... pour le premier champ sa a fonctionné.
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/06/2012 à 02:00
Bonjour,
En VB il n'y a pas (à ma connaissance) de moyen direct pour lire un fichier CSV
Quel est le résultat de la première ligne avec LineInput ?
Si la ligne est complète, il te faut enlevé les guillemets avec la fonction Replace() ensuite séparé les parties entre ; (point-virgule) avec la fonction Split()
Si tu dispose d'Excel ce serait plus facile.
Tu dis.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1