|
Configuration File Parser
Submitted by |
Confix is a full featured configuration file parser I wrote some time ago.
The configuration file's structure is presented as a simple object model
and can be easily manipulated (eg. changing settings, moving variables
to different sections, and so on).
To set it apart from existing libraries, I included these features:
Bullet proof parser (try parsing your windows folder!)
Does not reformat the configuration file on changes
Recognizes three kinds of comments
Support for multi-line strings with escape sequences
Here's a little example of what you could do:
int main(void) {
CConfigFile CFG("# Simple configuration file\n"
"Test = 123 // With comments\n"
"String = Hello"
"\n"
"[Section ]\n"
"String = World\n"
"Test = 123.456\n";);
// Reading variables
cout << "Global entries: " << CFG.getSection(0).getNumVariables() << endl;
cout << "Value of Test: " <<
CFG.getSection(0).getVariable("Test").getLong() << endl;
// Changing
CFG.getSection(0).getVariable("Test") = 456;
CFG.getSection("Section").setName("NewName");
// Removing / adding
CFG.getSection(0).removeVariable("String");
CFG.getSection("NewName").addVariable(CConfigVariable("String = Hello"));
} |
Some people may be offended by my usage of hungarian notation, but it will
only hit you in form of the class names (CConfigFile, CConfigSection). The
parser also wasn't generated by flex or another common tool, but handcrafted
in order to provide maximum compatibility, flexibility and speed.
The entire library is documented using doxygen comments and for windows
users,
an MSVC 6.0 workspace and CHM help file is included in the download. The
code
is released under the IBM common public license - in short you can do
anything
except to re-release it under your name or sue me :D
Contact: confix@spam.lunaticsystems.de (remove the spam.)
-Markus-
|
The zip file viewer built into the Developer Toolbox made use
of the zlib library, as well as the zlibdll source additions.
|