Lecture fichier csv (vb.net)

lmb19 Messages postés 22 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 18 mai 2013 - 18 mars 2007 à 20:20
amydo Messages postés 5 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 22 août 2008 - 3 juil. 2008 à 10:53
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

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
19 mars 2007 à 08:07
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,";")
2
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
18 mars 2007 à 22:31
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.

++
0
lmb19 Messages postés 22 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 18 mai 2013 1
18 mars 2007 à 23:56
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
0
amydo Messages postés 5 Date d'inscription vendredi 29 février 2008 Statut Membre Dernière intervention 22 août 2008
3 juil. 2008 à 10:53
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
0
Rejoignez-nous