Seite 1 von 1

Verschiedene Behandlung von Strings je nach "Herkunft"

Verfasst: 01 Feb 2010, 15:12
von embl-structures
Hallo,

folgender Code generiert eine Fehlermeldung, dass "a" kein zulaessiger String-Ausdruck sei

Code: Alles auswählen

[Aktionen]
DefStringList @list
Set           @list = createstringlist("a")
for $v in @list do Message "Die aktuelle Version ist " + $v
wohingegen der folgende Code anstandslos funktioniert:

Code: Alles auswählen

[Aktionen]
DefStringList @list
Set           @list = createstringlist("a")
DefVar        $v
Set           $v = takestring(0, @list)
Message "Die aktuelle Version ist " + $v
$v ist beides mal eine Stringvariable, wird aber im String-Ausdruck verschieden behandelt, je nachdem woher sie kommt

Gruss
frank

Re: Verschiedene Behandlung von Strings je nach "Herkunft"

Verfasst: 01 Feb 2010, 16:06
von r.roeder
Hallo,

der korrekte Ausdruck lautet:

Code: Alles auswählen

for $v in @list do Message "Die aktuelle Version ist " + "$v"
d.h. $v eingeschlossen in Anführungszeichen, weil beim Iterieren durch die Liste die Ersetzungssemantik für Konstanten gilt (s. Handbuch 6.4.7). Dann sollte es funktionieren :D

Grüße!

Rupert Röder

Re: Verschiedene Behandlung von Strings je nach "Herkunft"

Verfasst: 01 Feb 2010, 16:30
von embl-structures
r.roeder hat geschrieben:d.h. $v eingeschlossen in Anführungszeichen, weil beim Iterieren durch die Liste die Ersetzungssemantik für Konstanten gilt (s. Handbuch 6.4.7). Dann sollte es funktionieren :D
Habe wohl RTFM vergessen :oops:. Ist trotzdem etwas irritierend, dass Stringvariablen hier speziell behandelt werden muessen (auch wenn es dokumentiert und technisch erklaert ist).

Mein Code funktioniert jetzt jedenfalls.

Danke
frank