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