Reprenons donc:
- tu as une variable global conf[] qui défini quelles variables pourront se trouver dans ton fichier de configuration, ainsi que leur type.
- à un endroit dans ton programme, tu lis le fichier de configuration en faisant confparse("test.conf", stderr), ou test.conf est le fichier de configuration de ton programme, et stderr indique que si des erreurs se produisent (variables inconnues, fichier non trouvé, etc) elles sont affichée sur la sortie d'erreur standard. Cette fonction renvoie -1 en cas d'erreur, le nombre de variables lues dans le fichier si tout va bien.
- ensuite, tu peux accéder aux valeurs lues via la fonction getconf, qui renvoie un valeur de type "option", c'est à dire une structure. Le plus simple est de faire du "pseudo-objet" et d'accéder à la valeur d'une option opt de type typ par getconf("opt").value.typ, sachant que typ doit valoir: yn si l'option est booléenne (type YESNO indiqué dans conf[]); i dans le cas d'un entier (INTOPT); f dans le cas d'un flottant (FLOATOPT); str dans le cas d'une chaine de caractères (STRINGOPT).
Par exemple, si dans ton tableau conf[] tu as une ligne
{"Debug", YESNO, 1, {0}}
alors dans ton programme tu peux avoir:
if (getconf("Debug").value.yn) {
/* faire qqch si "Debug = yes" est défini dans
le fichier de configuration. */
}
Je reconnais que la doc pourrait être plus explicite... je vais voir ca ;-)
[^] # Re: Désolé
Posté par Nicolas Bernard (site web personnel) . En réponse au message Lire facilement un fichier de configuration. Évalué à 2.
Reprenons donc:
- tu as une variable global conf[] qui défini quelles variables pourront se trouver dans ton fichier de configuration, ainsi que leur type.
- à un endroit dans ton programme, tu lis le fichier de configuration en faisant confparse("test.conf", stderr), ou test.conf est le fichier de configuration de ton programme, et stderr indique que si des erreurs se produisent (variables inconnues, fichier non trouvé, etc) elles sont affichée sur la sortie d'erreur standard. Cette fonction renvoie -1 en cas d'erreur, le nombre de variables lues dans le fichier si tout va bien.
- ensuite, tu peux accéder aux valeurs lues via la fonction getconf, qui renvoie un valeur de type "option", c'est à dire une structure. Le plus simple est de faire du "pseudo-objet" et d'accéder à la valeur d'une option opt de type typ par getconf("opt").value.typ, sachant que typ doit valoir:
yn si l'option est booléenne (type YESNO indiqué dans conf[]);
i dans le cas d'un entier (INTOPT);
f dans le cas d'un flottant (FLOATOPT);
str dans le cas d'une chaine de caractères (STRINGOPT).
Par exemple, si dans ton tableau conf[] tu as une ligne
{"Debug", YESNO, 1, {0}}
alors dans ton programme tu peux avoir:
if (getconf("Debug").value.yn) {
/* faire qqch si "Debug = yes" est défini dans
le fichier de configuration. */
}
Je reconnais que la doc pourrait être plus explicite... je vais voir ca ;-)