Ini_parser is a little C++ library to open and parse .ini config file. The library support a flexible syntax. You can add space at the beginning or add spaces before and after the =. All the lignes starting with # are ignores. It's also possible to add a comment after a parameter line.
To compile the ini_parser library, you need a C++11 compliant compiler, CMake and git.
By default CMake will compile the library in static. To compile the dynamic library enable the option BUILD_SHARED_LIBS.
BUILD_STATIC_LIBS(enabled by default) : build the static library, the library is namedlibini_parser_static.a(orini_parser_static.libon Windows).BUILD_SHARED_LIBS(disabled by default) : build the shared library, the library is namedlibini_parser.so(orini_parser.libon Windows).
Include the library header into your project
#include <ini_parser.h>Create the ini_parser object with the path to the .ini file.
ini_parser parser("Path/To/IniFile.ini");Use the method getValue to get a value from the ini file.
std::string value = parser.getValue("Section", "Parameters");There is 3 constructors in the class. One default contructor and 2 override constructor.
ini_parser();
ini_parser(const char* iniFile, bool isFile = true);
ini_parser(const std::string& iniFile, bool isFile = true);If you want to pass the data of a .ini file and not the file path, set the isFile parameter to false.
To check is the file has been parsed used the isParsed method :
bool isParsed() const;To get the value of a parameter of a section, use the getValue method :
const char* getValue(const char* section, const char* parameters, bool* isExist = nullptr) const;
const std::string& getValue(const std::string& section, const std::string& parameters, bool* isExist = nullptr) const;Pass a bool pointer in the isExist parameters to know if the parameters or the section exist.
To open a new file without recreating a new object, use the setIniFile method :
void setIniFile(const char* iniFile, bool isFile);
void setIniFile(const std::string& iniFile, bool isFile);The library can also be used for regular .conf file that do not have any sections. The parameters of this file are attached to a section with an empty name string. To retrieve this parameters, there is an override of getValue :
const char* getValue(const char* parameters, bool* isExist = nullptr) const;
const std::string& getValue(const std::string& parameters, bool* isExist = nullptr) const;The library support a flexible .ini file syntax, here an exemple of what possible :
# A Comment
# Param not attached to any sections.
MyParam = My Value
[Section1]
Param1=Value1
Param2 = Value2 # Another commentThe library is licensed under the MIT license. Check the license file.