Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
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.

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.
  • tritt im kompilierten Modus ein Fehler auf. Schreiben Sie z.B. ein Zeichen nach dem Ende einer Zeichenkette oder eines Textes wie in folgendem Code:

  //Sehr schlecht und hässlich, buh!
 vsAnyText:=""
 vsAnyText[[1]]:="A"

löst das folgenden Runtime-Fehler aus:

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 ( Quelltext ) -> 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("hello, my name is jane doe and i'm running for president!"))

zeigt folgende Meldung:



Siehe auch 

Char
Character code

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)