tuple_split
— Aufteilen von Strings in mehrere Strings mittels Trennsymbolen.
tuple_split( : : String, Separator : Substrings)
tuple_split
sucht in den einzelnen Strings des Eingabetupels
String
nach den Trennsymbolen, die in dem
Eingabetupel Separator
definiert sind.
tuple_split
teilt dann die untersuchten Strings in die Teilstrings,
die durch die Trennsymbole separiert werden, und gibt diese in
Substrings
zurück.
Das Verhalten hängt von der Länge der Eingabe-Tupel ab:
Separator
enthält genau einen String:
Jeder String in String
wird durch die Trennsymbole in
Separator
aufgeteilt.
Z.B. sei String
= ['alpha:1', 'beta:2', 'gamma:3']
und Separator
= ['a:']
.
Dann gibt der Operator das Ausgabetupel Substrings
=
['lph', '1', 'bet', '2', 'g', 'mm', '3']
zurück.
String
enthält genau einen String:
Der einzelne String wird je Element des Tupels Separator
aufgeteilt.
Z.B. sei String
= 'alpha:1 beta:2 gamma:3'
und Separator
= [':', '123']
.
Dann besteht das Ausgabetupel Substrings
aus den Teilstrings
'alpha'
, '1'
, 'beta'
, '2'
,
'gamma'
und '3'
aufgrund der Trennung durch das erste
Element in Separator
(':'
)
sowie aus den Teilstrings 'alpha:'
, 'beta:'
und
'gamma:'
aufgrund der Trennung durch das zweite Element in
Separator
('123'
).
Beide Tupel beinhalten die selbe Anzahl Strings:
Die Suche geschieht elementweise. Das heißt, der erste
String von String
wird gemäß den Trennsymbolen des ersten Strings
von Separator
aufgeteilt, der zweite String von String
wird gemäß den Trennsymbolen des zweiten Strings von Separator
aufgeteilt und so weiter.
Eines oder beide der Eingabetupel sind leer: Ein leeres Tupel wird zurück gegeben.
Anmerkungen zum Parameter Separator
:
Enthalten die Strings von Separator
mehr als ein Zeichen, so werden
alle in einem String enthaltenen Zeichen als Trennsymbole interpretiert
(siehe das oben gegebene Beispiel).
Folgen in einem String aus String
mehrere Trennsymbole direkt
einander, so werden diese wie ein einzelnes Trennsymbol behandelt.
Trennsymbole am Anfang und am Ende von String
führen nicht zu
einem leeren Teilstring.
Es gilt zu beachten, dass beide Eingabetupel (String
und
Separator
) ausschließlich aus Strings bestehen müssen.
Anderenfalls bricht tuple_split
mit einem entsprechenden Fehler ab.
Weisen die beiden Eingabetupel eine unterschiedliche Anzahl an Elementen
auf, die von 1 verschieden ist, so bricht tuple_split
mit einem
entsprechenden Fehler ab.
Die Trennzeichen werden als Unicode Codepoints behandelt. Ein Codepoint kann
aus mehreren Bytes im UTF-8 String zusammengesetzt sein. Wenn die
Trennzeichen als einzelne Bytes behandelt werden sollen,
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_split
,
die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden
kann:
Substrings := split(String, Separator)
String
(input_control) string(-array) →
(string)
Eingabetupel mit aufzuteilenden Strings.
Separator
(input_control) string(-array) →
(string)
Eingabetupel mit Trennsymbolen.
Substrings
(output_control) string(-array) →
(string)
Teil-Strings nach Aufteilung mittels Trennsymbolen.
tuple_strstr
,
tuple_strrstr
,
tuple_strchr
,
tuple_strrchr
,
tuple_strlen
,
tuple_str_first_n
,
tuple_str_last_n
,
tuple_environment
Foundation