Was ist der einfachste Weg, um eine INI-Datei in C ++ zu analysieren?
Ich versuche zu Parsen einer INI Datei mit C++. Irgendwelche Tipps, was ist der beste Weg, dies zu erreichen? Sollte ich die Windows-API-tools für INI-Datei-Verarbeitung (mit dem ich mich völlig ungewohnt), ein open-source-Lösung oder den Versuch zu analysieren, es manuell?
InformationsquelleAutor der Frage conmulligan | 2008-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Windows API-Funktionen, wie GetPrivateProfileString() und GetPrivateProfileInt().
InformationsquelleAutor der Antwort Joel Spolsky
Benötigen Sie ein cross-Plattform-Lösung, versuchen Sie Erhöhung der Programm-Optionen Bibliothek.
InformationsquelleAutor der Antwort Adam Mitz
Habe ich nie analysierten ini-Dateien, so kann ich nicht zu spezifisch auf dieses Problem ein.
Aber ich habe einen Tipp:
Das Rad nicht neu erfinden, solange ein bestehendes Ihren Anforderungen entspricht
http://en.wikipedia.org/wiki/INI_file#Accessing_INI_files
http://sdl-cfg.sourceforge.net/
http://sourceforge.net/projects/libini/
http://www.codeproject.com/KB/files/config-file-parser.aspx
Glück 🙂
InformationsquelleAutor der Antwort Lars Mæhlum
Benutze ich SimpleIni. Es ist cross-Plattform.
InformationsquelleAutor der Antwort Harold Ekstrom
Wenn Sie schon mit Qt
Lesen Sie dann den Wert
Gibt es eine Reihe von anderen converter, konvertieren Sie Ihre INI-Werte in standard-Typen und Qt-Typen. Siehe Qt-Dokumentation auf QSettings für weitere Informationen.
InformationsquelleAutor der Antwort Dat Chu
diese Frage ist ein bisschen alt, aber ich poste meine Antwort. Ich habe getestet, verschiedene INI-Klassen (Sie können sehen, wie Sie auf meine website) und ich benutze auch simpleIni, weil ich will arbeiten mit INI-Dateien auf windows-und winCE.
Fenster GetPrivateProfileString() funktioniert nur mit der Registrierung auf winCE.
Es ist sehr leicht zu Lesen mit simpleIni. Hier ist ein Beispiel:
InformationsquelleAutor der Antwort Mike
inih ist eine einfache ini-parser in C geschrieben, es kommt mit einer C++ - wrapper zu. Beispiel:
Der Autor hat auch eine Liste der vorhandenen Bibliotheken hier.
InformationsquelleAutor der Antwort nimcap
Haben Sie versucht,libconfig; sehr JSON-syntax. Ich bevorzuge es, über XML-Konfigurationsdateien.
InformationsquelleAutor der Antwort Christopher Lightfoot
Wenn Sie daran interessiert sind Plattform-Portabilität, können Sie auch versuchen Steigern.PropertyTree. Es unterstützt die ini wie persistancy format, obwohl die Eigenschaft Baum meiner 1 Ebene tief nur.
InformationsquelleAutor der Antwort gast128
Es sei denn, Sie planen, auf was die app cross-Plattform, mit der Windows-API-Aufrufe wäre der beste Weg zu gehen. Ignorieren Sie den Hinweis in der API-Dokumentation zu versehen, die nur für 16-bit-app-Kompatibilität.
InformationsquelleAutor der Antwort crashmstr
Vielleicht eine späte Antwort..Aber lohnt sich zu wissen, die Optionen.., Wenn Sie benötigen ein cross-Plattform-Lösung , auf jeden Fall können Sie versuchen, GLIB, seine interessant.. (https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html)
InformationsquelleAutor der Antwort Ragav
Ich weiß, diese Frage ist sehr alt, aber ich kam darauf, weil ich etwas brauchte cross-Plattform für linux, win32,... ich habe die Funktion unten, es ist eine einzelne Funktion, kann der parse-INI-Dateien, hoffentlich, andere finden es nützlich.
Regeln & Vorsichtsmaßnahmen:
buf zu analysieren, muss ein NULL-terminated string. Laden Sie Ihre ini-Datei in ein char-array, string und rufen Sie diese Funktion zu analysieren.
Abschnitt Namen haben muss [] Klammern um Sie herum, wie diese [MySection], auch Werte und Teile beginnt auf einer Zeile ohne führende Leerzeichen. Es analysiert Dateien mit dem Windows \\r \ \ n oder mit Linux \n-Zeilenenden. Kommentare sollten verwenden Sie # oder //beginnen und am Anfang der Datei, keine Kommentare gemischt mit INI-Eintrag die Daten. Zitate und Zecken sind getrimmt von beiden enden der Zeichenkette zurückgeben. Leerzeichen sind nur getrimmt werden, wenn Sie außerhalb der quote. Strings sind nicht erforderlich, Anführungszeichen und Leerzeichen werden abgeschnitten, wenn die Anführungszeichen fehlen. Sie können auch extrahieren von zahlen oder anderen Daten, zum Beispiel wenn Sie ein Schwimmer Sie brauchen nur atof(ret) ret-Puffer.
Verwendung... Beispiel....
InformationsquelleAutor der Antwort 12oclocker