7.4 Zeichenketten- und Zahlenumwandlung

Hollywood unterstützt automatische Zeichenkettenumwandlung, um Nummern und Zahlen umzuwandeln. Das bedeutet, wenn ein/e Befehl/Funktion in einem Argument eine Zeichenkette erwartet und Sie dann eine Zahl übergeben, wird Hollywood diese Zahl automatisch in eine Zeichenkette konvertieren und dem/r Befehl/Funktion weitergeben.

Zum Beispiel: StrLen() gibt die Länge der angegebenen Zeichenkette zurück. Wenn wir jetzt

 
a = StrLen(256)

aufrufen, wird Hollywood die Zahl 256 automatisch zur Zeichenkette "256" konvertieren. Die Variable a erhält den Wert 3, weil die Zeichenkette "256" aus drei Buchstaben besteht.

Dies funktioniert auch umgekehrt. Wenn Sie einem/r Befehl/Funktion eine Zeichenkette übergeben, welche eine Zahl erwartet, wird Hollywood versuchen, diese Zeichenkette in eine Zahl zu konvertieren. Der Unterschied ist aber, dass die Konvertierung scheitern könnte. Z.B. kann Hollywood "Hello" nicht in eine Zahl umwandeln. Die Zeichenkette muss dezimal oder hexadezimal sein. Variablen gemischt mit Buchstaben und Zahlenzeichenketten können nicht konvertiert werden, auch wenn die Ziffern vor den Buchstaben sind. Hexadezimalzahlen müssen mit einem Dollar Zeichen oder 0x beginnen. Ein Beispiel:

 
LoadBrush("1", "Brush.iff")

LoadBrush() erwartet eine Zahl als Argument. So wird die Zeichenkette "1" automatisch in eine Zahl konvertiert. Die nächsten beiden Codezeilen können nicht funktionieren:

 
LoadBrush("Test", "Brush.iff")
LoadBrush("1Test", "Brush.iff")

Die Zeichenkette "Test" oder "1Test" können nicht in eine Zahl umgewandelt werden.

Sie können auch alle mathematischen Ausdrücke mit Zahlen und Zeichenketten benutzen, außer Bedienungs-/Vergleichsoperatoren. Sie können nur zwei Werte der gleichen Art vergleichen. Zum Beispiel:

 
a = "5" * 10 + 100 / "10" + ("100" - 60)  ; a ist 100

Aber dieser Code wird eine Fehlermeldung generieren, weil Sie mit Zeichenketten und Zahlen Vergleichsoperatoren miteinander vergleichen:

 
If "10" < 20       ---> Fehler!

Wenn Sie trotzdem zwei verschiedene Arten vergleichen wollen, benützen Sie Val() für eine Konvertierung in eine Zahl oder StrStr() für die Umwandlung in eine Zeichenkette.

 
If Val("10") < 20  ---> Funktioniert!


Navigation zeigen