Variablen und Werte aus Quelltextdatei auslesen
-
Hallo!
Ich benutze einen C++-Simulationscode, der ein relativ lange Konfigurationsfile 'parameters.cpp' besitzt. Um zu vermeiden, das ich zwei Simulationen mit den gleichen Parametern starte, würde ich mir gerne ein C++Programm schreiben, welches die Werte aus einer Parameterdatei ausließt, und sie mit den bisher gestarteten Simulationsparametern vergleicht.
Nun wollte ich hier im Forum mal fragen, wie man am besten/einfachsten eine solche Datei ausließt?
Da ich vermutlich auch immer mal wieder Kommentare in die Datei reinschreiben werde, wäre ein Vergleichen der kompletten Dateien nicht sinnvoll, sondern nur ein Vergleich der Variablenwerte.
Vielen Dank für Hinweise!
Tschüss
-
XML (+ eventuell XSLT) wäre dafür prädestiniert.
-
Entschuldigung, aber so viel Ahnung von XML habe ich nicht. Wie kann man mit XML eine C++-Quelltextdatei auslesen?
-
solarwind schrieb:
Entschuldigung, aber so viel Ahnung von XML habe ich nicht. Wie kann man mit XML eine C++-Quelltextdatei auslesen?
Gar nicht. Der Vorschlag läuft darauf hinaus, die Konfigurationsdaten in einer XML-Datei abzulegen, und die dann z. B. mit TinyXML zu parsen.
Der Grund ist der, dass C++ sehr schwierig zu parsen und als Konfigurationssprache eher ungeeignet ist.
Keine Ahnung wie deine Daten aussehen, aber XML ist vielleicht schon zu viel des Guten. Eventuell tut es ja auch eine ini- oder JSON-Datei. Oder auch Lua, wenn es um mehr als nur key,value-Paare geht.
-
Registrierter Troll schrieb:
Oder auch Lua, wenn es um mehr als nur key,value-Paare geht.
Oder Scheme.

-
Wenn der Benutzer zwei Simulationen mit den gleichen Parameter starten will, was solls? Würde ich mir nicht so den Kopp machen, lass ihn doch.
Ansonsten,
ich gehe mal davon aus, das die Simulationen von einem Hauptprogramm aus gestartet werden,
kannst du die Variablen ja auch innerhalb des Programms vergleichen und brauchst keine Datei zu parsen.
Angenommen du erzeugst für jede Simulation ein eigenständiges Objekt und die Objekte packst du in ein Objektarray, die erste Simulation wird durch das objekt[0] und die zweite durch das objekt[1] repräsentiert, dann vergleichst du:parameter_gleich = false
if objekt[0].variable1 == objekt[1].variable1
then
parameter_gleich = trueGruß,
B.B.