mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-25 05:57:45 +00:00
42 lines
1.5 KiB
Markdown
42 lines
1.5 KiB
Markdown
![]() |
# inih
|
||
|
[](https://travis-ci.org/jtilly/inih)
|
||
|
|
||
|
This is a header only C++ version of [inih](https://github.com/benhoyt/inih).
|
||
|
|
||
|
**inih (INI Not Invented Here)** is a simple [.INI file](http://en.wikipedia.org/wiki/INI_file) parser written in C. It's only a couple of pages of code, and it was designed to be _small and simple_, so it's good for embedded systems. It's also more or less compatible with Python's [ConfigParser](http://docs.python.org/library/configparser.html) style of .INI files, including RFC 822-style multi-line syntax and `name: value` entries.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
All you need to do is to include `INIReader.h`. Consider the following example (`INIReaderTest.cpp`):
|
||
|
|
||
|
```cpp
|
||
|
#include <iostream>
|
||
|
#include "INIReader.h"
|
||
|
|
||
|
int main() {
|
||
|
|
||
|
INIReader reader("test.ini");
|
||
|
|
||
|
if (reader.ParseError() < 0) {
|
||
|
std::cout << "Can't load 'test.ini'\n";
|
||
|
return 1;
|
||
|
}
|
||
|
std::cout << "Config loaded from 'test.ini': version="
|
||
|
<< reader.GetInteger("protocol", "version", -1) << ", name="
|
||
|
<< reader.Get("user", "name", "UNKNOWN") << ", email="
|
||
|
<< reader.Get("user", "email", "UNKNOWN") << ", pi="
|
||
|
<< reader.GetReal("user", "pi", -1) << ", active="
|
||
|
<< reader.GetBoolean("user", "active", true) << "\n";
|
||
|
return 0;
|
||
|
|
||
|
}
|
||
|
```
|
||
|
|
||
|
To compile and run:
|
||
|
|
||
|
```sh
|
||
|
g++ INIReaderTest.cpp -o INIReaderTest.out
|
||
|
./INIReaderTest.out
|
||
|
# Config loaded from 'test.ini': version=6, name=Bob Smith, email=bob@smith.com, pi=3.14159, active=1
|
||
|
```
|