indexOf()

Die Systemfunktion 'strLib.indexOf()' gibt einen Index an eine Zeichenfolge aus Zeichen zurück. Der Index gibt an, wo ein angegebenes Muster beginnt.

Syntax

  strLib.indexOf(
    Quelle STRING | UNICODE | CHAR | DBCHAR | MBCHAR inOut,
    Muster STRING | UNICODE | CHAR | DBCHAR | MBCHAR in
    [, zu_überspringende_Byte INT in] )
  returns (Ergebnis INT)
Quelle
Bei der Eingabe kann es sich um einen beliebigen Wert handeln, der mit den angezeigten Typen zuordnungskompatibel ist.
Muster
Eine Zeichenfolge, nach der EGL in Quelle sucht. Der Wert muss denselben Typ haben wie Quelle.
zu_überspringende_Byte
Die Anzahl der ersten Zeichen in Quelle, die ignoriert werden sollen, bevor mit der Suche nach Muster begonnen wird. Ist dieser Wert nicht gültig (kleiner als 0 oder größer als die Länge von Quelle), löst die Funktion eine Ausnahmebedingung vom Typ 'IndexOutOfBounds' aus.
Durch Übergabe der zu überspringenden Byte anstelle einer Anfangsposition können Sie eine Iteration ausführen, indem Sie das Ergebnis eines Aufrufs als Wert für zu_überspringende_Byte des nächsten Aufrufs verwenden, wie in Beispiel 2 weiter unten gezeigt wird.
Ergebnis
Der Index des Anfangs von Muster in Quelle. Wird Muster nicht gefunden, gibt die Funktion 0 zurück.

Beispiel 1

Das folgende Beispiel sucht die ersten beiden Vorkommen eines Semikolons in der Quellenzeichenfolge:

  source STRING = "STRING; CHAR; DBCHAR; MBCHAR; or UNICODE.";
  pattern STRING = "; "
  
  result = strLib.indexOf(source, pattern);
  // Das Ergebnis lautet 7
  result = strLib.indexOf(source, pattern, 10);
  // Das Ergebnis lautet 13

Beispiel 2

Das folgende Beispiel sucht alle Vorkommen von Leerzeichen in der Quellenzeichenfolge:

   function indexOfExample()
      text string = "A BC DEF GHIJ" ;
      pIndex int = indexOf(text, " ", 0);
      while(pIndex != 0);
         writeStdOut("Blank index = " + pIndex);
         pIndex = indexOf(text, " ", pIndex);
      end
   end
Die Konsole zeigt die folgenden Zeilen an:
Blank index = 2
Blank index = 5
Blank index = 9

Feedback