Viper31
Messages postés96Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention 7 août 2005
-
2 juin 2004 à 21:24
lumba78
Messages postés1Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention25 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.
lumba78
Messages postés1Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention25 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és4Date d'inscriptiondimanche 20 août 2006StatutMembreDernière intervention31 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és1Date d'inscriptionmardi 25 janvier 2005StatutMembreDernière intervention31 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és60Date d'inscriptionmercredi 3 mars 2004StatutMembreDernière intervention24 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és60Date d'inscriptionmercredi 3 mars 2004StatutMembreDernière intervention24 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és96Date d'inscriptionmardi 2 avril 2002StatutMembreDerniè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 :
25 nov. 2009 à 16:18
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
31 juil. 2007 à 17:16
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];
31 mars 2005 à 10:09
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 ?
3 juin 2004 à 19:57
3 juin 2004 à 17:40
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 ) .
3 juin 2004 à 17:22
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.
2 juin 2004 à 21:28
J'avoue , jai pas regardé s'il existait déjà d'autres sources ...
2 juin 2004 à 21:24
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é !!