C/C++-INI-Datei-Parser-Bibliothek

Ich versuche, eine einfache C/C++-Bibliothek zu finden, um INI-Konfigurationsdateien zu analysieren.

Es sollte:

  • Prüfungen haben
  • klein sein (z. B. eine .h-Datei und eine .cpp-Datei)
  • einfach zu bedienen sein ("Standard"-INI-Datei-Parsing ist ausreichend)
  • Cross-Plattform und Cross-Compiler sein
  • Fehlerprüfung haben, möglicherweise ohne Ausnahme
  • unter einer freizügigen Lizenz veröffentlicht werden (MIT/BSD ist in Ordnung, GPL nicht)

Python hat ConfigParser, was ziemlich einfach ist. Ich mag das.

Ich habe Boost überprüft und möchte das vermeiden (zu viele Abhängigkeiten).

Irgendwelche Vorschläge?

Die program_options von Boost unterstützen INI-Dateien (oder zumindest INI-ähnliche Dateien), siehe diesen Abschnitt der Dokumentation.
Beachten Sie, dass es nicht das INI-Dateiformat gibt . Wir haben allein in unserem Unternehmen 3 verschiedene INI-Dateiformate - und sie sind alle nicht mit dem Microsoft-Format kompatibel ( facepalm )
Seit Jahren bin ich sehr zufrieden mit github.com/ndevilla/iniparser

Antworten (2)

Eine moderne und plattformübergreifende Bibliothek ist auch inicpp . Es hat eine ziemlich gute Testunterstützung, ist einfach zu bedienen und eines der besten Features ist die Schemavalidierung (mit voller Typsicherheit). Es ist nicht groß, aber es sind mehr als eine .h- und .cpp-Datei. Lizenz ist MIT.

Wenn ich einen Header für grundlegende Dinge einfügen kann, ist das in Ordnung. Die Forderung nach Unterstützung für C++14 ist jedoch definitiv übertrieben.

Das Beste, was ich finden konnte, ist inih . Die C++-Schnittstelle ist minimal, aber sie funktioniert.

Merkmale:

  • ähnlich wie Pythons ConfigParser (hat Get, GetInteger, ...)
  • es ist klein, zwei Dateien .cpp und .h
  • Cross-Compiler
  • ausnahmelose Fehler
  • freizügige Lizenz (BSD)

Mangel:

  • Funktionen zum Erstellen von .ini-Dateien
  • Funktionen, um alle Abschnitte oder alle Felder auf einmal zu erhalten, aber dafür gibt es einen Fork