Lecture fichier csv (vb.net)

Signaler
Messages postés
22
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
18 mai 2013
-
Messages postés
5
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
22 août 2008
-
Bonjour,

Je desire lire les données d'un fichier au format csv
Paul;bleu;33;280
Jean;rouge;24;170
etc..

j'utilise actuellement le code ci-dessous :

Private Sub Command1_Click()

'on lui applique l'objet File
Set File1 = CreateObject("FileCtl.File")
Call File1.Close

'definition du chemin
chemin = "Temp"
'chemin = App.Path
'on ouvre le fichier en mode lecture
Call File1.Open(chemin & "data.csv", fsModeInput, fsAccessRead, fsLockReadWrite)

'Tant que la fin du fichier n'est pas atteinte
Do While Not File1.EOF
    'on remplit la variable avec la valeur trouvé dans la ligne actuelle du fichier
    wLigne1 = File1.Get
    'puis dans le combo1
    Combo1.AddItem (wLigne1)

Loop
Call File1.Close

End Sub

Mon souci est qu'il m'affiche les données par ligne, je voudrais pour chaque ligne extraire les données separées par le ; (point-virgule)

Si quelqu'un peut me guider

merci

4 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Forcément si tu poses ta question dans la catégorie vb.net / base de données....
Sous eMbedded VB3.0 je ne sais pas si la fonction Split() existe mais voici un exemple pour splitter une ligne avec ; comme séprateur

dim selement() as string
selement=split(Wligne1,";")
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Bonsoir,
Dans ton itération tu fais ton découpage après avoir récupérer ta ligne dans WLigne1:
Dim sElement as string()=WLigne1.Split(";".ToCharArray())

Au passage pour manipuler les fichiers utilise les classes StreamReader/StreamWriter et pour les fichiers contenu binaire les classes BinaryReader/BinaryWriter.
Si tu es en vb2005 tu peux regarder dans l'espace de noms My (My.Computer.FileSystems.xxxxx) il y a tout ce qu'il faut.

++
Messages postés
22
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
18 mai 2013

J'ai oublié 2 choses...
Je suis debutant en VB et j'utilise eMbedded Visual Basic 3.0
(car cette petite appli doit tourner sous Windows Mobile)

cette declaration : Dim sElement as string()=WLigne1.Split(";".ToCharArray())
n'est pas accepté

Avant en VB j'utilisait :
Open "c:\data.csv" For Input As #1
Do While Not EOF(1)
Input #1, Nom, Prenom, Couleur, score
Loop
Close #1

Mais avec eMbedded Visual Basic 3.0 cela ne fonctionne pas

Si quelqu'un connait l'equivalent du code ci-dessus qui pourrait fonctionner sous eMbedded Visual Basic 3.0, je suis preneur

Merci
Messages postés
5
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
22 août 2008

boujour à tous,

je doit écrire un script qui télécharge un fichier au format .csv (pour

simplifier : un tableau d'un tableur enregistré en txt avec un

séparateur de champ (en général ; )) puis trouve la ligne contenant

l'adresse MAC de la machine sur laquelle ce script s'execute et

ensuite utilise les autres valeurs de cette UNIQUE ligne pour fixer

IP/Gateway/etc...

Aidez moi S.V.P