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