Fonctionnement général :
La fonction enregistrer récupère des valeurs entrées dans des editbox et les enregistre dans le fichier texte --> OK
La fonction ouvrir va récupérer les valeurs des variables dans le fichier texte et les entrer dans mes editbox --> pas OK..
Voila l'état actuel des choses : [list]
La fonction enregistrer marche parfaitement mais j'aimerais la simplifier du style : mavariable = Structure.A00 & i. Ce qui ne fonctionne pas et je sèche sur la solution.
La fonction ouvrir ne marche pas du tout, elle me récupère le texte et me le convertit en ASCII je suppose ? Bref rien de bon.. Je cherche également à le simplifier surement de la même manière que la fonction enregistrer.. Mais rien..
/list
Je sais que des tutoriels ou sujets dans des FAQ traitent certains de mes problèmes mais je dois être aveugle...
Merci d'avance pour ceux qui prendraient le temps de lire ce gros pavet, j'espère avoir été assez clair dans mes explications..
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 27 mai 2013 à 11:43
Bonjour.
Tout d'abord quelques conseils:
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace - std::ifstream c'est un std::ostream + std::ios::in, donc pas besoin de le repréciser.
- Idem pour std::ofstream.
- Tu peux directement faire un "if (!file)" plutôt que "if (file.bad())".
Pour ton souci, tu peux le faire en générique en utilisant une std::map (tableau associatif).
Tu lis chacune des variables, ce qu'il y a avant un "=", que tu associes à la valeur lue après le "=".
C'est très simple à faire.
Je t'ai fais un exemple propre reprenant ton code. Dans celui-ci, je lis ton fichier, l'associe à une map, et ensuite je l'écris de deux manières différentes. La première écris les valeurs à la main (je n'ai pas tout mis, la flemme ^^) et le deuxième te montre comment écrire les valeurs de manières génériques.
La fonction "showMap" est une simple fonction de débug qui te montre ce que contient ta map.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Je pense avoir a peu prêt tout compris et ça correspond parfaitement à ce que je chercher à faire . Il est vrai que j'avais pas penser à faire de cette manière.
Je te remercie !
Dernière petite question tout de même^^:
J'ai un menu dans lequel je possède : Fichier->Quitter.
J'ai vu sur divers forums des personnes utiliser : Close(), OnOk(), Exit().
Mais dans mon application cela ne fonctionne pas. VC++ me propose uniquement CloseWindows(), ExitWindows() qui ne libérera pas la mémoire.
Pour OnOk() je me retrouve avec l'erreur suivante : Debut Assertion Failed !
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 27 mai 2013 à 14:44
J'ai oublié de précsier deux trois petits trucs:
- Le "fichier.close()" de ton objet "fstream" n'est pas utile. A la destruction de l'objet, le fichier est close automatiquement.
- Pas besoin de "return;" à la fin d'une fonction. "Return" sert à sortir d'une fonction prématurément. Donc si tu es déjà à la fin de celle-ci, cette instruction ne fait rien.
Dernière petite question tout de même^^:
[...] //question sur VC++
Je n'en ai aucune idée. Je ne connais pas très bien Windows (j'ai codé l'exemple précédent sous Linux :p). Ce que tu demandes n'est pas du C++, mais une question précise sur un framework de fenêtrage Windows. Sujet sur lequel je ne peux pas t'aider.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question