A small C++ INI parser library
cpp-iniparser uses Waf build system. On Windows, you need to install MinGW.
On Linux:
waf configure
On Windows:
waf configure --check-cxx-compiler=g++
waf build --static
waf build --shared
./run_tests.sh
waf install
input.ini
[foo]
key1=value1
key2=value2
[bar]
key3=value3
key4=value4
output.ini
[bar]
key4=value4
key5=value5
[foo]
key1=value1
key2=value2
key3=value3
Main.cpp
#include <iostream>
#include "INIParser.h"
using namespace std;
using namespace cppiniparser;
void TestRead() {
INIConfig config = INIParser::Read("input.ini");
vector<string> sections = config.Sections();
vector<string>::const_iterator s = sections.begin();
for (; s != sections.end(); ++s) {
cout << "Section: " << *s << endl;
vector<string> opts = config.Options(*s);
vector<string>::const_iterator o = opts.begin();
for (; o != opts.end(); ++o) {
string value = config.GetOption(*s, *o);
cout << " - " << *o << "=" << value << endl;
}
cout << endl;
}
}
void TestWrite() {
INIConfig config;
config.AddSection("foo");
config.AddOption("foo", "key1", "value1");
config.AddOption("foo", "key2", "value2");
config.AddOption("foo", "key3", "value3");
config.AddSection("bar");
config.AddOption("bar", "key4", "value4");
config.AddOption("bar", "key5", "value5");
INIParser::Write(config, "output.ini");
}
int main() {
TestRead();
TestWrite();
return 0;
}