GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2009-May-25

Title: Dynamische Variablengenerierung
Post by: WPShadow on 2009-May-25
Hallo,

ich schreibe mal hier rein, da ich mir nicht sicher bin, ob das Problem bzw. die Idee die ich habe ?berhaupt l?sbar ist bzw. ob es nicht gegen jeglichen Sinn einer Programmiersprache geht...

Ich bastle an einer Idee, bei der ich Variablen ?ber einen String anlegen m?chte. Und zwar nicht die Stringvariable selbst, sondern deren Inhalt!

String$ = "Variablenname"

Gibt es daf?r irgendeine M?glichkeit? Es geht mir hierbei um dynamisches Auslesen von Variablen, die zwar im system definiert sind, die ich aber nicht extra alle anf?hren m?chte, ca. so:

// Die Read liest irgendeinen Variablennamen von extern ein

read$ = "life" // life als normale Variable mit dem Inhalt 5

dyn_var = read$ // dyn_var als Platzhalter f?r life, wobei nicht life als name, sondern der Inhalt von life an dyn_var ?bergeben werden sollte
// (war nur nicht sicher, wie ich das ausdr?cken soll, deshalb das = )


print dyn_var, 0, 0 // dyn_var = 3

Der Sinn dahinter w?re, da? man z.B. in einer Text - Datei einfach Variablen angeben k?nnte, die ausgelesen bzw. ersetzt werden, ohne, da? man im System jedes Mal eine neue Variable anlegen mu?.

Gibt es in dieser Hinsicht irgendeine L?sung bzw. schon etwas fertiges, das ca. in diese Richtung reagiert bzw. funktioniert oder ist es einfach unbrauchbar?

GLG

W.

EDIT:
Bin ich hier in der Richtung richtig unterwegs?
http://de.wikipedia.org/wiki/Assoziatives_Array
Title: Re: Dynamische Variablengenerierung
Post by: Schranz0r on 2009-May-25
?hmm wie w?rs mit ner Ini ?
Title: Re: Dynamische Variablengenerierung
Post by: WPShadow on 2009-May-26
Problem gel?st, ist aber etwas komplexer geworden als gedacht! Wenn ich aus der Arbeit zur?ck bin, lade ich hier ein kleines Beispiel hoch!

EDIT:

Hier das Beispiel! Hab etwas mit Gernot experimentiert! Ist noch in der Konzeptphase!  :good:

Code (glbasic) Select

LOCAL test$, file

ok = OPENFILE(1, "test.txt", 1)

IF ok = 1
READLINE 1, test$
ENDIF

anzahl = SPLITSTR(test$, daten$[], " ")




DIM befehl$[1]


ok2 = OPENFILE(2, "befehle.txt", TRUE)

WHILE ENDOFFILE(2) = 0

READLINE 2, inhalt$

DIMPUSH befehl$[], inhalt$

DIMDEL befehl$[], 0

WEND


FOREACH user$ IN befehl$[]
IF user$ = daten$[0]
IF anzahl = 4
pos_x = daten$[2]
pos_y = daten$[3]
PRINT daten$[1], pos_x, pos_y
ENDIF
ENDIF
NEXT

SHOWSCREEN

KEYWAIT


Anbei die beiden Text - Dateien zum testen!

[attachment deleted by admin]
Title: Re: Dynamische Variablengenerierung
Post by: WPShadow on 2009-May-27
Code (glbasic) Select

LOCAL test$, file

ok = OPENFILE(1, "test.txt", 1)

IF ok = 1
READLINE 1, test$
ENDIF

anzahl = SPLITSTR(test$, daten$[], " ")


life = 15

DIM befehl$[1]
DIM var$[1]

var$[0] = "life"


ok2 = OPENFILE(2, "befehle.txt", TRUE)

WHILE ENDOFFILE(2) = 0

READLINE 2, inhalt$

DIMPUSH befehl$[], inhalt$

DIMDEL befehl$[], 0

WEND


FOREACH user$ IN befehl$[]
IF user$ = daten$[0]
IF anzahl = 4
pos_x = daten$[2]
pos_y = daten$[3]
PRINT daten$[1], pos_x, pos_y
ENDIF

IF anzahl = 5
FOREACH variable$ IN var$[]

IF variable$ = daten$[2]
var_info$ = life
ENDIF

NEXT


pos_x = daten$[3]
pos_y = daten$[4]
PRINT daten$[1] + " " + var_info$, pos_x, pos_y
ENDIF



ENDIF
NEXT

SHOWSCREEN

KEYWAIT


Hier die verbesserte Version!

Geht mal her und setzt in die test.txt mal folgenden Satz rein:

text Lebensenergie: life 100 200
Title: Re: Dynamische Variablengenerierung
Post by: WPShadow on 2009-May-27
hehehe

Hey, ich versuche mir die Arbeit f?r LR einfach zu erleichtern! Au?erdem macht permanent neu compilieren auch keinen Spa?!  :nana: