Welcome, Ladies and Gentlemen!
Let me present you a fascinating library dealing with INI files.
It is free (MIT license), well documented, regularly updated, cross-platform, reasonably fast (STL based), supports all main text formats ( ASCII, MBCS and Unicode/UTF-8 ), shipped with source file. That’s a developer's dream. 8)
If you need an INI-file functionality, say, for options, and XML is too heavy for your needs, this lib is one of the best choice.
I’ve used this library in couple of projects I’ve participated in and we were very satisfied.
SimpleIni FEATURES ( from original site )
• MIT Licence allows free use in all software (including GPL and commercial)
• multi-platform (Windows 95/98/ME/NT/2K/XP/2003, Windows CE, Linux, Unix)
• loading and saving of INI-style configuration files
• configuration files can have any newline format on all platforms
• liberal acceptance of file format
• key/values with no section
• removal of whitespace around sections, keys and values
• support for multi-line values (values with embedded newline characters)
• optional support for multiple keys with the same name
• optional case-insensitive sections and keys (for ASCII characters only)
• saves files with sections and keys in the same order as they were loaded
• preserves comments on the file, section and keys where possible.
• supports both char or wchar_t programming interfaces
• supports both MBCS (system locale) and UTF-8 file encodings
• system locale does not need to be UTF-8 on Linux/Unix to load UTF-8 file
• support for non-ASCII characters in section, keys, values and comments
• support for non-standard character types or file encodings via user-written converter classes
• support for adding/modifying values programmatically
• compiles cleanly in the following compilers:
Windows/VC6 (warning level 3)
I also use this library to extend GameEngine font capabilities, to describe a font “texture” file more fully in separate INI-file, which contains such info as: number of rows and columns, cell width and height, whether font is monospace or proportional etc. Additionally, an optional array of glyph’s width/dangle pairs (in the original format) is injected – this is done using SimpleIni multiline capability. Now my version of font subsystem is ready to support national characters (from the second part of ASCII table).
Windows/VC.NET 2003 (warning level 4)
Windows/VC 2005 (warning level 4)