Version 3
Einführung
Mit den Symbolen:
können Sie sich auf ein einzelnes Zeichen innerhalb einer Zeichenkette beziehen. So können Sie in einem Feld bzw. einer Variablen vom Typ Alpha bzw. Text einzelne Zeichen ansprechen.
Hinweis: Die Sonderzeichen auf Macintosh erhalten Sie mit der Kombination Wahltaste + Zeichen < bzw. Wahl- + Umschalttaste + Zeichen >.
Diese Syntax auf der linken Seite des Zuweisungsoperators (:=) weist der angegebenen Position in der Zeichenkette ein Zeichen zu. Beispiel: Ist vsName kein leerer String, setzt folgender Code das erste Zeichen von vsName in Großbuchstaben:
If (vsName#"") vsName[[1]]:=Uppercase(vsName[[1]]) End if
Diese Syntax mit dem gewünschten Zeichen innerhalb eines Ausdrucks gibt dieses als String mit einem Zeichen zurück:
` Folgendes Beispiel prüft, ob das letzte Zeichen von vtText das Jokerzeichen "@" ist If (vtText # "") If (Character code(Substring(vtText;Length(vtText);1))=At Sign) ` ... End if End if ` Mit den Sondersymbolen schreiben Sie einfacher: If (vtText # "") If (Character code(vtText[[Length(vtText)]])=At Sign) ` ... End if End if
Ungültiger Zeichenzugriff
Beim Einsatz der Symbole für direkten Zeichenzugriff müssen Sie vorhandene Zeichen in einer Zeichenkette auf dieselbe Weise wie die Elemente in einem Array ansprechen. Sprechen Sie beispielsweise das 20. Zeichen einer Textvariablen an, muss diese Variable auch mindestens 20 Zeichen enthalten. Ist das nicht der Fall,
erhalten Sie im interpretierten Modus keinen Syntaxfehler.
kann das im kompilierten Modus (ohne Optionen) zum Überschreiben von anderweitig belegtem Speicher führen, wenn Sie z.B. ein Zeichen nach dem Ende einer Zeichenkette oder eines Textes schreiben.
tritt im kompilierten Modus ein Fehler mit der Option Range Checking On auf. Bei dem Code:
vsAnyText:="" vsAnyText[[1]]:="A"
erscheint folgender Runtime-Fehler:
Beispiel
Folgende Projektmethode schreibt den ersten Buchstaben jedes Worts im Text groß, der als Parameter übergeben wurde und gibt den Text mit großen Anfangsbuchstaben zurück:
` Projektmethode Text mit Großbuchstaben ` Text mit Großbuchstaben ( Text ) -> Text ` Text mit Großbuchstaben( Ursprungstext ) -> Text mit Großbuchstaben $0:=$1 $vlLen:=Length($0) If ($vlLen>0) $0[[1]]:=Uppercase($0[[1]]) For ($vlChar;1;$vlLen-1) If (Position($0[[$vlChar]];" !&()-{}:;<>?/,.=+*")>0) $0[[$vlChar+1]]:=Uppercase($0[[$vlChar+1]]) End if End for End if
Die Zeile:
ALERT(Capitalize text ("Hallo, mein Name ist Rita und ich werde bald Chefin!"))
zeigt folgende Meldung auf dem Bildschirm:
Referenz
ASCII Codes, Char, Character code.