tuple_strrchr — Rückwärtssuchen nach einem Zeichen in einem Tupel von Strings.
tuple_strrchr sucht in dem Eingabetupel String nach den in
dem Eingabetupel ToFind definierten Zeichen. Beide Eingabetupel
müssen durchwegs aus Strings bestehen. Anderenfalls bricht
tuple_strrchr mit einem entsprechenden Fehler ab. Enthalten die
Strings von ToFind mehr als ein Zeichen, so wird ausschließlich das
erste Zeichen in einem String berücksichtigt und alle folgenden Zeichen
ignoriert. Die Suche nach einem Zeichen geschieht rückwärts also vom Ende zum
Anfang des zu untersuchenden Strings. Besteht String nur aus einem
einzigen String, so werden in diesem alle in ToFind definierten
Zeichen gesucht. Das Ausgabetupel besteht also in diesem Fall aus genauso
vielen Elementen wie das Eingabetupel ToFind. Ist die Suche nach
einem Zeichen erfolgreich, so wird die Position (beginnend mit 0 für das
erste Zeichen eines Strings), an der das Zeichen das erste Mal innerhalb des
untersuchten Strings gefunden wurde, in dem Ausgabetupel Position
zurückgegeben. Wurde ein Zeichen 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, das erste Zeichen im ersten Element von ToFind wird in
dem ersten String von String, das erste Zeichen des zweiten ELements
von ToFind wird im zweiten String von String gesucht und so
weiter. Die einzelnen Elemente des Ausgabetupels enthalten dann das Resultat
der elementweisen Suche. Besteht ToFind nur aus einem Element, so
wird das dort definierte Zeichen 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_strrchr 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_strrchr,
die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden
kann:
Position := strrchr(String, ToFind)
String (input_control) string(-array) → (string)
Eingabetupel mit zu untersuchenden Strings.
ToFind (input_control) string(-array) → (string)
Eingabetupel mit zu suchenden Zeichen.
Position (output_control) integer(-array) → (integer)
Positionen der gesuchten Zeichen in den untersuchten Strings.
tuple_strchr,
tuple_strstr,
tuple_strrstr,
tuple_strlen,
tuple_substr,
tuple_str_first_n,
tuple_str_last_n,
tuple_split,
tuple_environment
Foundation