D7WS HOMEPAGE WORKSHOP NEUE XTRAS GALERIE WORKSHOP Automatic Translation LESERSERVICE BUCH NEWS

HowTo: value()

 

 

 

Home
Workshop-Seite

Zitat aus der Online-Hilfe:

Diese Anweisung zeigt den numerischen Wert der Zeichenkette "Wurzel aus" && "2.0” an:
put value("Wurzel aus" && "2.0")
Das Ergebnis ist 1.4142.

Probieren Sie's mal aus – vielleicht kann Director ja besser übersetzen als die Übersetzer der Hilfe ;-) Auch der Rest der Dokumentation zu value() geht knapp an der Realität vorbei. Was wirklich geschieht bei Aufruf der Funktion, ist folgendes:

value("einString") interpretiert den übergebenen String, wie der Lingo-Interpreter einen Skripttext interpretieren würde.

value("[1, 2]") ergibt [1, 2], nicht weil value() eine automatische Typ-Konversion vornimmt, sondern weil der Inhalt des Strings als Lingo-Statement interpretiert eine Liste ist.

value("Peter") ergibt <VOID>, wenn Peter nicht als globale Variable, Property oder ähnliches definiert wurde – nicht etwa, weil hier eine Typ-Konversion stattfände, sondern weil der Lingo-Interpreter Peter im gegebenen Kontext als Variablenname auffaßt, und die Variable nicht definiert wurde.

value("Hans-Peter") ergibt 0, weil <VOID> - <VOID> die erste Expression ist und Null ergibt. Es würde 3 ergeben, wenn wir hans = 5 und peter = 2 als globale Variablen definiert hätten.

value("Mein Hans-Peter") ergibt <VOID>, weil die Lingo-Interpretation des Strings nach der ersten undefinierten Expression, also nach "Mein", abbricht.




 

 

 

 

Nutzen Sie für reine Typ-Konversionen (String zu Liste etc.) die speziell dafür vorgesehenen Funktionen: list(), integer(), float(), string(), symbol().

value() kann dagegen hervoragend eingesetzt werden, wenn Sie aus Strings eine Lingo-Expression konstruieren:

myprops = ["rect", "loc", "color"]
repeat with i = 1 to 3
  put value("sprite(1)."&myprops[i])
end repeat

Die repeat-Schleife würde dann diese Lingo-Expressions auswerten:

sprite(1).rect
sprite(1).loc
sprite(1).color

Joachim Gola




 


Directorworkshop.de ist © Joachim Gola & Gerd Gillmaier 1998-2002. Alle Rechte vorbehalten.