Enfait j'aimerais pouvoir lire un fichier texte
puis récupérer les valeurs du fichier texte pour les enregistrer dans une base de donnée access.
je code sous visual c++.net
merci.
Version imprimable
Enfait j'aimerais pouvoir lire un fichier texte
puis récupérer les valeurs du fichier texte pour les enregistrer dans une base de donnée access.
je code sous visual c++.net
merci.
Tant que tun ne montreras pas un début de code, tu n'auras pas de réponse.
Pour la lecture, utilise System::IO::StreamReader, avec une recherche sur streamReader, tu devrais trouver un exemple
voici mon début de code :
mais après je ne sais pas comment faire pour enregistrer dans la base de donnée.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //Création du fichier output.txt FileStream* fs = new FileStream("C:\\output.txt", FileMode::Create); //Ecrit des caractéres dans un flux d'octets StreamWriter* sw = new StreamWriter(fs); //Ecrit dans le fichier sw->WriteLine("rr"); sw->WriteLine("ff"); sw->Flush(); sw->Close(); StreamReader* sr = new StreamReader(fs); String* ligne = sr->ReadLine();
avec ce code je n'ai pas d'erreur mais est il bon ?
j'ai aussi essayer d'afficher les valeurs lu dans une messageBox mais rien ne s'affiche :merci pour vos réponseCode:
1
2 MessageBox::Show(ligne,"dd");
:tagcode:
tu as essayé de suivre pas à pas en debug ? ca donne quoi ? le fichier est bien créé ? c'est la relecture qui ne passe pas ?
enfait le truc c'est que sa ne bugue pas mais dans ma messageBox il ne m'affiche rien mais je n'ai pas d'erreur.
mais quand je vais voir le fichier il est quand meme bien créer avec les données dedans...
sans regarder plus loin, je dirais que la lecture échoue, vu que tu utilises un filestream initialié à Create au lieu de open
a merci en effet ça marche !!
ca fait vraiment plaisir surtout qu'il y a un moment que je cherché mon erreur...
et enfait mon autre probleme était de savoir comment mettre donc ces donnée dans ma base de donnée ??
merci pour ton aide encore une fois
Tu peux utiliser ADO.Net
ok je vais aller voir cette méthode.
et juste une derniere chose comment je fait afficher a ma messageBox les différentes lignes de mon fichier parce que jai essayé avec une boucle while mais enfait sa me bloque le programme :
merkiCode:
1
2
3
4
5
6 while (sr->Peek() >= 0) { MessageBox::Show(ligne,"dd"); }
teste plutot le retour de readline
genre :A vérifierCode:
1
2
3
4
5 ligne = sr->ReadLine(); while (Compare::String(ligne, "")) { ligne = sr->ReadLine(); }
non ça n'a pas l'air de marcher,
il ne comprend pas le Compare.
mais enfin c'est pas grave merci en tout cas pour ton aide
Désolé, c'était l'inverse String::Compare
mais je viens de m'apercevoir que c'est une mauvaise idée. Il vaut mieux comparer quand à la validité de ligneCode:
1
2
3 String * ligne = s->ReadLine(); while (ligne) ligne = s->ReadLine();
Oui sa marche comme ça mais l'inconvénient est que la première donnée n'est prise en compte:
si mes valeurs dans mon fichier sont :Code:
1
2
3
4 while (ligne){ ligne = sr->ReadLine(); MessageBox::Show(ligne,"dd"); }
1
2
3
Lorsque j'affiche ma messageBox il va m'indiquer 2, puis 3, il ne commence pas du 1.
faut-il l'indiquer dans le while ??
Peut-être qu'en intervertissant les instructions d'affichage et de lecture....
c'est dur l'informatique ...
Il faut bien sur appeller messagebox après chaque lecture ... :roll:Code:
1
2
3
4
5
6
7 String * ligne = s->ReadLine(); MessageBox::Show(ligne,"dd"); while (ligne) { ligne = s->ReadLine(); MessageBox::Show(ligne,"dd"); }
Grillé :mrgreen:
ouais, mais dans ce cas, tu rates la dernière ligne :aie:Citation:
Envoyé par Trap D
A oui !!
en effet sa marche très bien !!
donc un grand merçi a vous deux et ça fait vraiment plaisir d'avoir de l'aide comme ça et aussi rapide.
merci beaucoup en tout cas!!
pour ma part je vais continué a codé et encore merci pour tout les gars.
à la prochaine.
@+
Ah bon :Citation:
Envoyé par nico-pyright(c)
Tu en es sûr :?: :?: :?: :zekill:Code:
1
2
3
4 while (ligne){ MessageBox::Show(ligne,"dd"); ligne = sr->ReadLine(); }