tuple_strrstr — Rückwärtssuchen nach einem Teilstring in einem Tupel von Strings.
tuple_strrstr sucht in dem Eingabetupel String nach den in
dem Eingabetupel ToFind definierten Strings. Beide Eingabetupel
müssen durchgehend aus Strings bestehen. Anderenfalls bricht
tuple_strrstr 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. Die Suche geschieht rückwärts also vom Ende zum Anfang des
zu untersuchenden Strings. 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 innerhalb eines Strings 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_strrstr 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_strrstr,
die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden
kann:
Position := strrstr(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_strstr,
tuple_strlen,
tuple_strchr,
tuple_strrchr,
tuple_substr,
tuple_str_first_n,
tuple_str_last_n,
tuple_split,
tuple_environment
Foundation