Anwendungsdaten in einer Konsolenanwendung speichern.
-
Hallo,
ich habe eine wahrscheinlich ziemliche Anfängerfrage, aber ich habe beim suchen leider nichts passendes gefunden.
Ich schreibe gerade eine Konsolenanwenung (in C++ mit Visual Studio 2017 - falls das von Belang ist) und möchte einige Daten bzw. Einstellungen speichern. Ich habe einiges zu Resourcendateien und den XML files gefunden, was an sich ganz interessant klingt. Aber leider war das alles immer entweder für C# und vor allem nie für Konsolenanwendungen.
Ich bin mir auch nicht sicher, was die richtige Art der Datei wäre, die ich anlegen müsste dafür. Ich will keine Textdatei erzeugen und alles selbst da eintragen, mit wäre eine XML Datei oder Ini Datei, in der es Schlüsselwörter gibt und dazu jeweils einen Wert am liebsten, denn dann ist das Hinzufügen, ändern und lesen am einfachsten.Kann mir bitte jemand sagen, was da der beste Weg ist, das abzuspeichern, also welche Art von Datei ich am besten nutzen sollte. Freuen würde ich mich auch über einen Link zu einer kleinen Beschreibung oder einem Beispiel.
Vielen Dank im Voraus.
Gruß,
Florian
-
Hallo Florian,
FlorianWolf schrieb:
Kann mir bitte jemand sagen, was da der beste Weg ist, das abzuspeichern,...
den besten Weg gibt es nicht! Ein guter Weg ist der Weg, der alle Deine Anforderungen erfüllt. Du hast uns ja nicht einmal mitgeteilt, was für Daten da zu speichern wären und um welche Mengen es sich handelt. Es ist schon ein Unterschied, ob es eine oder mehrere Bilder sind, oder lediglich eine einsame IP-Adresse.
Du möchtest INI oder XML, dann schaue Dir mal boost.options oder meine Beiträge zu INI-Dateien an: hier und hier. Und bei XML wäre Tiny-XML ein schneller und einfacher Einstieg.
Gruß
Werner
-
Danke für die schnelle Antwort.
Sorry, da habe ich gar nicht dran gedacht, das näher zu spezifizieren. Ich muss ein paar Einstellungen speichern, es geht um eine Hand voll Werte (Integer, Float und String), keine Bilder und keine größeren Daten.
Ich werde mir mal deine Links anschauen. Danke.
-
Werner Salomon schrieb:
Hallo Florian,
Du möchtest INI oder XML, dann schaue Dir mal boost.options oder meine Beiträge zu INI-Dateien an: hier und hier. Und bei XML wäre Tiny-XML ein schneller und einfacher Einstieg.
Gruß
WernerIch habe mir die boost lib mal angeschaut und das scheint mir seeehr mächtig, um nicht zu sagen überfordernd
Ich habe mir dann deine Beiträge zum Thema INI angeschaut und finde das sehr interessant. Ich habe mir gerade ein kleines Programm zum testen geschiebene, in dem ich das hier nutze. Das ist genau der Umfang den ich mir vorgestellt habe und es funktioniert auch so, wie ich mir das denke. Jetzt kommt das kleine "aber".
Da ich aus der Microcontrollerprogrammierung komme und in PC-Programmierung nicht so fit bin, scheitere ich gerade am speichern, da ich deinen Quellcode nicht wirklich zu 100% verstehe. Hast du zu dem Beispiel vielleicht auch noch etwas zum speichern. Das wäre super.
Vielen lieben Dank schon mal im Voraus.Gruß,
Florian
-
Wo genau liegt denn das Problem?
Im zweiten Beispiel zu Ini Dateien von Werner Salomon wird auch eine Ini Datei geschrieben.
Das ist der Part mit dem ofstream und dem überladenen << Operator.
-
Schlangenmensch schrieb:
Wo genau liegt denn das Problem?
Im zweiten Beispiel zu Ini Dateien von Werner Salomon wird auch eine Ini Datei geschrieben.
Das ist der Part mit dem ofstream und dem überladenen << Operator.Ich denke du meinst das hier.
Da habe ich das Problem, wenn ich das so versuche zu übernehmen, dass der Compiler in Zeile 9 bei ProgramOptions(); einen Fehler ausgibt: Funktionsdefinition nicht gefunden. Und in Zeile 16, 20, 23 und 24 sagt er "Funktionsdefinition für ... nicht gefunden".
Ich glaube, dass das an sich genau das ist was ich brauche, da hast du recht, aber ich bekomme es nicht zum laufen
-
Das liegt daran, dass die Funktionen nicht implementiert sind. Werner Salomon hat aufgeschrieben, wie sowas aussehen kann. Aber die Implementation der Klasse "ProgramOptions" fehlt.