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