Verschiedene Behandlung von Strings je nach "Herkunft"

Antworten
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Verschiedene Behandlung von Strings je nach "Herkunft"

Beitrag 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
Benutzeravatar
r.roeder
uib-Team
Beiträge: 540
Registriert: 02 Jul 2008, 10:08

Re: Verschiedene Behandlung von Strings je nach "Herkunft"

Beitrag 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
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.


Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Re: Verschiedene Behandlung von Strings je nach "Herkunft"

Beitrag 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
Antworten