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
?hmm wie w?rs mit ner Ini ?
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:
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]
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
hehehe
Hey, ich versuche mir die Arbeit f?r LR einfach zu erleichtern! Au?erdem macht permanent neu compilieren auch keinen Spa?! :nana: