Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VC ++
  Variable und deren Wert aus einer Datei übernehmen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Variable und deren Wert aus einer Datei übernehmen (920 mal gelesen)
Bernd10
Mitglied



Sehen Sie sich das Profil von Bernd10 an!   Senden Sie eine Private Message an Bernd10  Schreiben Sie einen Gästebucheintrag für Bernd10

Beiträge: 763
Registriert: 20.11.2003

erstellt am: 15. Mrz. 2013 12:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von DonChunior an!   Senden Sie eine Private Message an DonChunior  Schreiben Sie einen Gästebucheintrag für DonChunior

Beiträge: 1148
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd10 10 Unities + Antwort hilfreich

Was genau steht denn in der Datei drinnen?
Mit Lisp-Code kann ich nichts anfangen.

------------------
MfG, DonChunior

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd10
Mitglied



Sehen Sie sich das Profil von Bernd10 an!   Senden Sie eine Private Message an Bernd10  Schreiben Sie einen Gästebucheintrag für Bernd10

Beiträge: 763
Registriert: 20.11.2003

erstellt am: 21. Mrz. 2013 11:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AndreasK an!   Senden Sie eine Private Message an AndreasK  Schreiben Sie einen Gästebucheintrag für AndreasK

Beiträge: 1017
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd10 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Bernd10 an!   Senden Sie eine Private Message an Bernd10  Schreiben Sie einen Gästebucheintrag für Bernd10

Beiträge: 763
Registriert: 20.11.2003

erstellt am: 21. Mrz. 2013 14:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von DonChunior an!   Senden Sie eine Private Message an DonChunior  Schreiben Sie einen Gästebucheintrag für DonChunior

Beiträge: 1148
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd10 10 Unities + Antwort hilfreich

Zum Einlesen und Speichern der "Paare" von Variablenname und Variablenwert würde sich eventuell die STL-Containerklasse map (http://www.cplusplus.com/reference/map/map/) gut eignen ...

------------------
MfG, DonChunior

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd10
Mitglied



Sehen Sie sich das Profil von Bernd10 an!   Senden Sie eine Private Message an Bernd10  Schreiben Sie einen Gästebucheintrag für Bernd10

Beiträge: 763
Registriert: 20.11.2003

erstellt am: 21. Mrz. 2013 15:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo DonChunior,

Zitat:
Original erstellt von DonChunior:
Zum Einlesen und Speichern der "Paare" von Variablenname und Variablenwert würde sich eventuell die STL-Containerklasse [b]map (http://www.cplusplus.com/reference/map/map/) gut eignen ...
[/B]

das weicht aber von meinem Vorhaben/Wunsch (= vorhandene Membervariablen meiner Klasse mit den Werten aus der Datei aktualisieren)ab.

Viele Grüße
Bernd


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz