Position

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11 (Geändert)


Position (Suchtext; String{; Start{; Längegefunden{; *}}}) Zahl

ParameterTypBeschreibung
SuchtextStringZu suchender Text
StringStringString für die Suche
StartZahlStelle in String, wo die Suche beginnt
LängegefundenLange GanzzahlLänge des gefundenen String
**Mit Stern: Vergleich basiert auf Zeichen-Codes
FunktionsergebnisZahlPosition des ersten Auftretens

Beschreibung

Die Funktion Position gibt die Position des ersten Auftretens von Suchtext in String zurück. Wurde Suchtext nicht gefunden, gibt Position den Wert 0 zurück.

Findet Position ein Vorkommen von Suchtext, gibt sie die Position des ersten Zeichens in String 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 String. Mit dem Parameter Start können Sie das erste Zeichen angeben, mit dem die Suche in String 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 wie Zeilenschaltung oder gesperrte Zeichen wie Char(2) (Unicode Spezifikation).

Wollen Sie diese Funktionsweise ändern, übergeben Sie * als letzten Parameter. Dann basieren Vergleiche auf Zeichen-Codes. Sie müssen * übergeben, um:

- Sonderzeichen zu berücksichten, die z.B. als Begrenzer dienen: Zeilenschaltung, Char(1)

- Groß- und Kleinschreibung und Zeichen mit Akzenten unterschiedlich zu werten: a#A, a#à, etc.

Beachten Sie, dass der Vergleich in diesem Modus keine unterschiedliche Unicode-Codierung von zusammengesetzten Zeichen 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.

Beispiele

1. Dieses Beispiel zeigt die Verwendung von Position.

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

2. 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
   $pos:=Position("aegis";$thetext;$start;$stringlength)
   $start:=$start+$stringlength
Until($pos=0)

Referenz

Substring, Vergleichsoperatoren.

Anwendung des Befehls

Capitalize, Filter Keystroke, Optimizing File Parsing with Match regex, Passing Parameters, Strings, Text To Array, VCard Import Export, vCard Import Export


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next