Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

05.03.2005, 21:05

Variablen über Dateien dynamisch zuweisen

Ich will eine Datei einlesen in der bspw. folgendes steht: VariableA = 1;
Daraufhin soll im Programm der Membervariablen VariableA einer festgelegten Klasse der Wert 1 zugewiesen werden. Geht das irgendwie, ohne jeden Fall vorzulegen, also nicht

C-/C++-Quelltext

1
if (ZeilederDatei == "VariableA = 1") Klasse.VariableA = 1;


Es soll also voll dynamisch bleiben.

Sicaine

unregistriert

2

05.03.2005, 21:18

Lies bis zum = das is der Variablenname dann alles nach dem = is der Wert. Einfache normale Vorgehensweise.

3

05.03.2005, 21:21

1. Ich glaub nicht, dass obiger Code funktionieren würde(Zumindest wenn ZeilederDatei nen Charachter Pointer ist).

2. Entweder zu machst es per ini-Dateien oder so:

C-/C++-Quelltext

1
2
fscanf(pf, "%s = %d", Variablenname, &Wert);
if(strcmp(Variablenname, "VariableA") == 0) Klasse.VariableA = Wert;

pf ist hier der FILE* der zu lesenden Datei, Variablenname der Name der Variablen und Wert der Wert dieser Variablen.

Sicaine

unregistriert

4

05.03.2005, 21:28

Ach ja und mach sowas nur, wenn du jede Eingabe auch entsprechend prüfst!

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

05.03.2005, 21:29

@Sicaine du hast leider nicht verstanden, was ich machen will.

@kaid Gut haste Recht, war aber auch nur als Beispiel gedacht.
Wie funktionieren inf Dateien? Das ist genau das, was ich erreichen will.

Wenn in der Datei "Kamera.txt" steht PositionX = 0 und die Funktion die ich schreiben will mit dem Objekt "Camera" als Parameter übergeben wird, dann soll die Funktion nachschauen, ob das Objekt "Camera" die Variable "PositionX" besitzt, und falls das so ist ihr die 0 zuweisen.
Dadurch würde quasi volle Dynamik gewährleistet und man könnte die Funktion für jede beliebige Klasse verwenden. Kann man das über Makros oder so irgendwie erreichen?

Sicaine

unregistriert

6

05.03.2005, 21:34

Klar hab ich verstanden was du machen willst. Musst halt nur beim einlesen eine Variablenwerteliste erstellen(die gefiltert ist) und dann halt überall wo dus benützten willst: variablenliste.getValue(key) etc. machen.

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

7

05.03.2005, 21:55

wie wäre es mit ini-dateien??

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

05.03.2005, 22:06

ja wenn das geht gerne... haste n gutes tut zur hand?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

05.03.2005, 22:16

Zitat

ja wenn das geht gerne... haste n gutes tut zur hand?


klick mich!
und mich!
und evtl. mich auch... ;)

10

05.03.2005, 22:16

Das hatte ich doch schon vorgeschlagen...

Zur Frage wie funktionieren sie:
Mit GetPrivateProfileString kannste einen String aus ini-Dateien lesen. Und zwar wie folgt:

C-/C++-Quelltext

1
GetPrivateProfileString(char* Section, char* Key, char* NotFoundValue, char* Value, int MaxLenght, char* Path)

Erklärung der Parameter:
Section: Sektion in der ini-Datei
Key: Key in der ini-Datei
NotFoundValue: Sozudagen der "Fehlertext"(Wenn der Key oder die Sektion nicht gefunden wurde)
Value: Der Value des Keys(in dem angegebenen String wird der Value gespeichert)
MayLenght: Die maximale Länge des Values
Path: Der Pfad der ini-Datei

Und hier noch der Aufbau einer ini-Datei

Quellcode

1
2
[Section]
Key = Value

Und so weiter...

Werbeanzeige