Ayant un peu été déconnecté de Boost depuis 2 ans, est-ce que vous savez s'il existe une bibliothèque de lectrue/écriture de fichiers de configuration, enfin les fameux .ini qui se baladent un peu partout.
Et si non, vous passeriez par quoi ?
Version imprimable
Ayant un peu été déconnecté de Boost depuis 2 ans, est-ce que vous savez s'il existe une bibliothèque de lectrue/écriture de fichiers de configuration, enfin les fameux .ini qui se baladent un peu partout.
Et si non, vous passeriez par quoi ?
Salut Matthieu :)
Je ne crois pas qu'il y ait une lib pour les fichiers de configuration.
Par contre, en construisant un parser avec un Spirit (un peu lourd p-ê ?) ou en utilisant comme il se doit Tokenizer/String algorithms, tu dois pouvoir avoir ce que tu veux assez facilement.
Par contre, y'a pas de tout cuit à ma connaissance dans Boost.
Ailleurs :
http://rudeserver.com/config/usage.html
http://libclaw.sourceforge.net/index-fr.html
C'est embêtant, ça :|
Enfin, merci, je vais voir ce que je peux faire ;)
Si si, avec boost::program option tu peux arriver à lire des fichiers type .ini
C'est récent ce feature ?
Apparemment depuis la 1.32
J'utilise boost::program_option et ça gere très bien les fichiers de ce type effectivement. Ya aussi l'avantage de pouvoir potentiellement mixer avec des infos venant de la ligne de commande histoire de permettre de surcharger un paramettre de config de manière exceptionnelle au besoin.
La bibliothèque pour ça, c'est property tree, une petite bibliothèque de gestion d'arbres de propriétées.
Ça supporte l'ini, l'xml et d'autres.
La syntaxe est de type chemin: machin.truc.bidule cherchera l'élément bidule se trouvant dans truc se trouvant dans machin.
Cool ! Je vais voir ça. La partie XML m'intéressera aussi parce que j'ai maintenant aussi des séries de valeurs que je dois stocker dans des conteneurs.
Pas l'air d'être officiellement supportée :|
Oui, c'est pas encore dans Boost.
Je viens de tenter de compiler un exemple simple de property tree, et j'ai une erreur avec le compilo intel dans detail/ptree_implementation.hpp, ligne 538 (type name is not allowed pour get_value<Type>) que je n'ai pas avce le compilo gcc :koi:
Fais voir la ligne en question ? :koi:
D'un autre côté, elle n'est pas dans Boost donc rien ne garantit qu'elle soit cross-compiler.
ICC peut être plus strict sur certaines choses que laissent passer VC, gcc notamment. Ou alors il se plante en te sortant une erreur.
Ca a l'air bien plus sournois, car il n'y a pas d'autre erreur que la ligne type name is not allowed machin chose.
Ici : https://svn.boost.org/svn/boost/sand...ementation.hpp ligne 538
Il me semble que c'est ça :
Code:
1
2
3
4
5
6
7
8 // Get value from data of child ptree template<class C, class K, class P, class D, class X> template<class Type> Type basic_ptree<C, K, P, D, X>::get(const path_type &path, const translator_type &x) const { return get_child(path).get_value<Type>(x); }