tuple_strstr — Vorwärtssuchen nach einem Teilstring in einem Tupel von Strings.
tuple_strstr sucht in dem Eingabetupel String nach den in
dem Eingabetupel ToFind definierten Strings. Beide Eingabetupel
müssen durchgehend aus Strings bestehen. Anderenfalls bricht
tuple_strstr mit einem entsprechenden Fehler ab. Besteht
String nur aus einem einzigen String, so werden in diesem alle in
ToFind definierten Strings gesucht. Das Ausgabetupel besteht also in
diesem Fall aus genauso vielen Elementen wie das Eingabetupel
ToFind. Ist die Suche nach einem String erfolgreich, so wird die
Position, an der der gesuchte String innerhalb des untersuchten Strings das
erste Mal gefunden wurde, in dem Ausgabetupel Position zurückgegeben
(die Position wird beginnend mit 0 gezählt). Wurde ein String nicht
gefunden, so wird für dessen Position der Wert -1 zurückgegeben. Enthalten
beide Eingabetupel String und ToFind gleich viele Elemente,
so werden sie elementweise bearbeitet, das heißt, der erste String von
ToFind wird in dem ersten String von String, der zweite von
ToFind im zweiten von String gesucht und so weiter. Die
einzelnen Elemente des Ausgabetupels enthalten dann das Resultat der
elementweisen Suche. Besteht ToFind nur aus einem String, so wird
dieser String in allen Strings des Eingabetupels String gesucht. Das
Ausgabetupel Position besitzt dann also genauso viele Elemente wie
das Eingabetupel String. Weisen die beiden Eingabetupel
String und ToFind eine unterschiedliche Anzahl an Elementen
auf, die von 1 verschieden ist, so bricht tuple_strstr mit einem
entsprechenden Fehler ab.
Falls eines oder beide der Eingabetupel leer sind, gibt der Operator ein leeres Tupel zurück.
Die Position bezieht sich auf Unicode Codepoints. Ein Codepoint kann
aus mehreren Bytes im UTF-8 String zusammengesetzt sein. Wenn die Position
sich auf die Bytes des Strings beziehen soll, kann dieser Operator mit
set_system('tsp_tuple_string_operator_mode', 'byte') in einen
Byte-Modus umgeschaltet werden. Wenn 'filename_encoding' auf
'locale' gesetzt ist (legacy), verwendet dieser Operator immer den
Byte-Modus.
Für allgemeine Informationen zu String-Operationen siehe auch Tupel / String-Operationen.
HDevelop unterstützt eine Inline-Operation für tuple_strstr,
die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden
kann:
Position := strstr(String, ToFind)
String (input_control) string(-array) → (string)
Eingabetupel mit zu untersuchenden Strings.
ToFind (input_control) string(-array) → (string)
Eingabetupel mit zu suchenden Teilstrings.
Position (output_control) integer(-array) → (integer)
Positionen der gesuchten Strings in den untersuchten Strings.
tuple_strrstr,
tuple_strlen,
tuple_strchr,
tuple_strrchr,
tuple_substr,
tuple_str_first_n,
tuple_str_last_n,
tuple_split,
tuple_environment
Foundation