tuple_strrchr — Backward search for characters within a string tuple.
tuple_strrchr searches within the strings of the input tuple
String for the characters of the input tuple ToFind. Both
input tuples may only consist of strings. Otherwise tuple_strrchr
returns an error. In any case backward search is used, i.e., every string is
examined from its last to its first character. If the elements of
ToFind contain more than one character, only the first character of
each element is considered for searching. If String contains only
one string, all the characters defined in ToFind are searched in
this string. Thus, the output tuple consists of as many elements as
ToFind. Whenever a searched character has been found, the position
of its first occurrence gets stored in the output tuple Position . If
a character can not be found, -1 will be returned instead of its position
(remark: the position starts at 0 for the first character of a string). If
both input tuples show the same number of elements, the search is done
elementwise. I.e., the first character of the first element of
ToFind is searched within the first string of String, the
first character of the second element of ToFind is searched within
the second string of String and so on. The results of the
elementwise searches are returned with Position that contains as
many elements as String and ToFind. If ToFind only
contains one string, its first character is searched within all strings of
String. Thus, in this case Position consists of as many
elements as String. If both input tuples contain more than one
element and the number of elements differs for the input tuples,
tuple_strrchr returns an error.
If either or both of the input tuples are empty, the operator returns an empty tuple.
The position references Unicode code points. One Unicode code point may be
composed of multiple bytes in the UTF-8 string. If the position should
reference the raw bytes of the string, this operator can be switched to byte
mode with set_system('tsp_tuple_string_operator_mode', 'byte'). If
'filename_encoding' is set to 'locale' (legacy), this
operator always uses the byte mode.
For general information about string operations see Tuple / String Operations.
HDevelop provides an in-line operation for tuple_strrchr,
which can be used in an expression in the following syntax:
Position := strrchr(String, ToFind)
String (input_control) string(-array) → (string)
Input tuple with string(s) to examine.
ToFind (input_control) string(-array) → (string)
Input tuple with character(s) to search.
Position (output_control) integer(-array) → (integer)
Position of searched character(s) within the string(s).
tuple_strchr,
tuple_strstr,
tuple_strrstr,
tuple_strlen,
tuple_substr,
tuple_str_first_n,
tuple_str_last_n,
tuple_split,
tuple_environment
Foundation