4D v14.3

Position

Home

 
4D v14.3
Position

Position 


 

Position ( Suchtext ; Quelltext {; Start {; Längegefunden {; *}}} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Suchtext  String in Zu suchender Text
Quelltext  String in
Start  Lange Ganzzahl in Stelle in String, wo die Suche beginnt
Längegefunden  Lange Ganzzahl in Länge des gefundenen String
Operator in Mit Stern: Vergleich basiert auf Zeichen-Codes
Funktionsergebnis  Lange Ganzzahl in Position des ersten Auftretens

Die Funktion Position gibt die Position des ersten Auftretens von Suchtext in Quelltext zurück. Enthält String nicht Suchtext, gibt der Befehl den Wert 0 zurück.

Findet Position ein Vorkommen von Suchtext, gibt sie die Position des ersten Zeichens in Quelltext zurück.
Fragen Sie innerhalb eines leeren String nach einer Position, gibt Position den Wert Null (0) zurück.

Die Suche beginnt standardmäßig mit dem ersten Zeichen von Quelltext. Mit dem Parameter Start können Sie das erste Zeichen angeben, mit dem die Suche in Quelltext beginnen soll.

Der Parameter Längegefunden gibt die Länge der Zeichenkette zurück, die aktuell durch die Suche gefunden wird. Dieser Parameter ist zum korrekten Verwalten von Buchstaben mit einem oder mehr Zeichen notwendig, z.B. ß und ss, ae und æ, etc.
Ist der optionale Parameter * übergeben, gelten diese Buchstaben als ungleich (ae # æ). In diesem Modus ist Längegefunden immer identisch mit der Länge von Suchtext (wenn ein Auftreten gefunden wurde).

Der Befehl führt standardmäßig globale Vergleiche aus, die linguistische Besonderheiten und Buchstaben, die als ein oder mehr Zeichen geschrieben werden (z.B. æ = ae) berücksichtigt. Dagegen ist er nicht diakritisch (a=A, a=á, etc.) und berücksichtigt nicht "ignorierbare" Zeichen (Unicode Spezifikation). Das sind alle Zeichen im Satz C0 Steuerung (U+0000 bis U+001F, Ascii Zeichen Steuerungssatz) mit Ausnahme der druckbaren Zeichen (U+0009 TAB, U+0010 LF, U+0011 VT, U+0012 FF und U+0013 CR)
Wollen Sie diese Funktionsweise ändern, übergeben Sie * als letzten Parameter. Dann basieren Vergleiche auf Zeichen-Codes. Sie müssen * übergeben, um:

  • Sonderzeichen zu berücksichtigen, die z.B. als Begrenzer dienen: Zeilenschaltung, Char(1), etc.
  • Groß- und Kleinschreibung und Zeichen mit Akzenten unterschiedlich zu werten: a#A, a#à, etc. Beachten Sie, dass der Vergleich in diesem Modus keine Variation in der Schreibweise von Wörtern behandelt.

Warnung: Der Joker (@) kann mit Position nicht benutzt werden. Übergeben Sie zum Beispiel in Suchtext "abc@", sucht die Funktion nach "abc@" und nicht nach "abc" plus beliebigen Zeichen.

Dieses Beispiel zeigt die Verwendung von Position. Die in den Kommentaren beschriebenen Ergebnisse werden der Variablen vlResult zugewiesen.

 vlResult:=Position("ll";"Wille") ` vlResult ergibt 3
 vlResult:=Position(vtText1;vtText2)
  ` Übergibt das erste Auftreten von vtText1 in vtText2
 v1Result:=Position("Tag";"Montag ist der erste Tag";1) `gibt 4 zurück
 v1Result:=Position("Tag";"Montag ist der erste Tag";8) `gibt 22 zurück
 v1Result:=Position("TAG;"Montag ist der erste Tag";1;*)  `gibt 0 zurück
 v1Result:=Position("œ";"Bœuf";1;$stringlength)
  `v1Result gibt 2 und $stringlength 1 zurück

Im folgenden Beispiel werden mit Längegefunden alle Vorkommen von aegis in einem Text gefunden, egal ob es “ægis” oder “aegis” geschrieben wird.

 $start:=1
 Repeat
    v1Result:=Position("aegis";$text;$start;$stringlength)
    $start:=$start+$stringlength
 Until(v1Result=0)

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String
Nummer: 15

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
SIEHE AUCH 

Substring
Vergleichsoperatoren

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)