4D v16.3

Symbole für direkten Zeichenzugriff

Home

 
4D v16.3
Symbole für direkten Zeichenzugriff

Symbole für direkten Zeichenzugriff  


 

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:

  ` 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

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:

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:



Siehe auch 

ASCII Codes
Char
Character code
Datentypen

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)