UTILISER UN FICHIER .INI (DEV-CPP)

Viper31 Messages postés 96 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 7 août 2005 - 2 juin 2004 à 21:24
lumba78 Messages postés 1 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 25 novembre 2009 - 25 nov. 2009 à 16:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23350-utiliser-un-fichier-ini-dev-cpp

lumba78 Messages postés 1 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 16:18
Pour Mowgli85 et TranceVibes,

l'erreur vient de la fct openini, il faut remplacer :

"sizeof(valeur)" par "100" si tu passe un char de taille 100, la fonction initiale demande à lire la taille d'un pointeur de char et non la place alloué pour le pointeur de char.

Je ne sais pas si ce que j'écris est compréhensible et juste ....... mais je me comprends ....

dsl d'arriver 2 ans plus tard
TranceVibes Messages postés 4 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 31 mai 2008
31 juil. 2007 à 17:16
Pour Mowgli85:

Il ne faut pas utiliser de pointeur mais un tableau!

Ceci ne marche pas:
//(param est la chaine de caractères dans laquelle tu vas stocker la valeur.)
char* param = new char[100];

Mais ceci oui:
char param[100];
mowgli85 Messages postés 1 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 31 mars 2005
31 mars 2005 à 10:09
pourquoi la la valeur lu n'excede jamais 3 caractères ( meme si dans le fichier ini elle en fait + )
ex :
fichier ini :

[test]
test=123456

et qd je fais lire une clé (pour la section test et la clé test) :

la valeur est 123



Quelqu'un peut m'aider ?
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
3 juin 2004 à 19:57
ben je te souhaite bon courage pr modifier la copie du fichier sans le charger en mémoire, et puis si ton prog plante pdt les manips, tu n'auras pas l'occasion d'effacer la copie et elle restera bêtement là, sur le dd :/
batrasog Messages postés 60 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 24 septembre 2004
3 juin 2004 à 17:40
merci du commentaire mais je pense pas un jour passez sous linux :P
sinon , au lieu de tout mettre en mémoire , il est à mon avis plus facile de copier le fichier et de lire la copie (à la fin , on pourra remplacer l'originial par la copie ) .
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
3 juin 2004 à 17:22
pr des codes comme ça, autant écrire une classe de gestion portable plutôt que de se reposer sur l'API windows, parce que qd tu voudras passer sous linux (ça risque d'arriver), tu devras refaire tout le travail.

je te propose un système comme ceci:

- la classe peut ouvrir un fichier ini ou en créer un nouveau
la classe charge toutes les données du INI en mémoire (ton INI fera pas 10Mo je suppose, sinon c pas une bonne idée) et tu fournis des méthodes pour pvr les lire/altérer (ajouter et enlever des sections entières, des clefs...)
- une méthode pour sauver le tout.

l'idée c'est donc de faire les modifs en mémoire et de n'effectuer la sauvegarde fichier qu'à un moment stratégique. ça évite les requêtes incessantes sur le DD et puis surtout, c plus facile de modifier les données en mémoire que dans un fstream.
batrasog Messages postés 60 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 24 septembre 2004
2 juin 2004 à 21:28
en fait j'ai fait les fonctions pour un de mes prog et après je me suis dit que ça pourrais servir à qqun .
J'avoue , jai pas regardé s'il existait déjà d'autres sources ...
Viper31 Messages postés 96 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 7 août 2005
2 juin 2004 à 21:24
Bon bah dans la serie rechauffé :)
sans vouloir te vexer , les fonctions ont deja ete detailé ici :

http://www.cppfrance.com/code.aspx?ID=9349

de plus , je vois pas l interet que tu as de passer par des fonctions intermediaires qui ne font rien d'autre que appelé les fonctions de l'API .

Sinon bah , c vrai que les fichier ini c bien la joie , ca peut depanner pas mal de situation encombré !!
Rejoignez-nous