| |
| Blechfertigung: Leitfaden zur Materialauswahl, ein Fachartikel
|
Autor
|
Thema: Variable und deren Wert aus einer Datei übernehmen (939 mal gelesen)
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003
|
erstellt am: 15. Mrz. 2013 12:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich übernehme per Lisp eine Variable (bzw. deren Namen) und den Wert dafür aus einer Datei. Als Ergebnis hat dann die Variable *ctest* den Wert "e". Dies kann man im Lisp-Debug-Fenster so nachvollziehen: _1_$ _1_$ cglobvari "*ctest*" _1_$ cwert "e" _1_$ (read cglobvari) *CTEST* _1_$ (vl-bb-set (read cglobvari) cwert) "e" _1_$ (vl-bb-ref cglobvari) "e" _1_$ Jetzt brauche ich diese Funktionalität aber in C++ (speziell ein C++-Ersatz für die Lisp-Funktion read). Leider habe ich aber bisher keine Möglichkeit gefunden. Wie kann ich die oben genannte Funktionalität in C++ abzubilden? Danke im Voraus und viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1153 Registriert: 09.09.2004 VC++ 2010 Express Edition VC++ 2008 Professional Edition Windows 7 Enterprise x64 SP1
|
erstellt am: 21. Mrz. 2013 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003
|
erstellt am: 21. Mrz. 2013 11:32 <-- editieren / zitieren --> Unities abgeben:
Hallo DonChunior, danke für Deine Antwort. Zitat: Original erstellt von DonChunior: Was genau steht denn in der Datei drinnen?
Der Inhalt der Datei könnte zum Beispiel so aussehen: m_strTest|"e" m_strABC|"k" m_dXYZ|123.456 m_nHUI|999 Wobei das Zeichen | der Trenner zwischen Variable und Wert ist. Die Variablen sind bekannte Membervariablen meiner Klasse. Wie man die Datei ausliest und nach Variable und Wert trennt, ist mir bekannt. Ich weiß auch, wie ich die Werte in int-Werte und double-Werte wandeln kann. Mir fehlt noch die Vorgehensweise, wie ich aus der Variablen der Datei (z.B. CString strVariable = "m_strTest") zu der Zuweisung (z.B. m_strTest = "e") komme. Mein Wunsch ist, dass im Programm den Membervariablen deren Wert zugewiesen wird, zum Beispiel so ähnlich: m_strTest = "e"; m_strABC = "k"; m_dXYZ = 123.456; m_nHUI = 999; Ist das möglich und wenn ja wie? Viele Grüße Bernd [EDIT] Smily gelöscht [Diese Nachricht wurde von Bernd10 am 21. Mrz. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasK Administrator Daseinsinformatiker
Beiträge: 1048 Registriert: 02.03.2000 Unter allen Umständen kann Vernunft durch Vernunft aufgeklärt werden (Alexander von Humboldt)
|
erstellt am: 21. Mrz. 2013 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
Ausser über eine bedingte Zuweisung wie (Zeilenkomponenten werden in strVar und strValStr eingelesen und z.B. zeilenweise verarbeitet) Code:
if ("m_strTest" == strVar) mStrTest = strValStr; if ("m_nHUI" == strVar) m_nHUI = atoi(strValStr);
oder mit switch, weil schneller Code:
switch (strVar) { case "m_strTest": m_strTest = strValStr; break; case "m_nHUI": m_nHUI = atoi(strValStr); break; ... }
wir es wohl nicht klappen. Float- und Integer-Werte müsste man noch mit atof() / atoi() entsprechend umwandeln. C++ ist ja keine Skriptsprache die interpretiert wird, sondern das Ergebnis ist ein kompiliertes Programm, das während der Laufzeit keine Variablennamen mehr kennt. ------------------ Beste Grüße Andreas Kippenberg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003
|
erstellt am: 21. Mrz. 2013 14:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, danke für Deine Antwort. Zitat: Original erstellt von AndreasK:
Ausser über eine bedingte Zuweisung wie (Zeilenkomponenten werden in strVar und strValStr eingelesen und z.B. zeilenweise verarbeitet) oder mit switch, weil schneller wir es wohl nicht klappen. C++ ist ja keine Skriptsprache die interpretiert wird, sondern das Ergebnis ist ein kompiliertes Programm, das während der Laufzeit keine Variablennamen mehr kennt.
Deine Informationen stimmen mit meinen bisherigen Informationen überein. Da die Zusammenstellung der Variablen in meiner Datei ziemlich unterschiedlich sein kann, habe ich aber gehofft, dass es die von mir gewünschte Möglichkeit doch gibt. So muss ich sehr genau aufpassen, dass im switch/case auch tatsächlich alle Variablen berücksichtigt sind. Darauf muss ich dann eben achten. Viele Grüße Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonChunior Mitglied CAD-Systemadministrator
Beiträge: 1153 Registriert: 09.09.2004 VC++ 2010 Express Edition VC++ 2008 Professional Edition Windows 7 Enterprise x64 SP1
|
erstellt am: 21. Mrz. 2013 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für Bernd10
|
Bernd10 Mitglied
Beiträge: 763 Registriert: 20.11.2003
|
erstellt am: 21. Mrz. 2013 15:24 <-- editieren / zitieren --> Unities abgeben:
|