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 zur Kompatibilität: Ab 4D v13 können Sie die früheren Mac OS Symbole (≤...≥) im Methodeneditor nicht mehr sehen.
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:
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:
![](../../picture/27388/pict27388.de.png)
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:
$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:
![](../../picture/27389/pict27389.de.png)