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 einem oder mehreren Trennsymbolen, die in dem
Eingabetupel Separator definiert sind. Die untersuchten Strings
werden dann in die Teil-Strings, die durch die Trennsymbole separiert werden,
aufgeteilt. Die beiden Eingabetupel String und Separator
müssen ausschließlich aus Strings bestehen. Anderenfalls bricht
tuple_split mit einem entsprechenden Fehler ab. Enthalten die Strings
von Separator mehr als ein Zeichen, so werden alle in einem String
enthaltenen Zeichen als Trennsymbole interpretiert. Beinhaltet
String nur einen einzigen String, so wird dieser anhand der im Tupel
Separator definierten Trennsymbole aufgeteilt. Besteht
String zum Beispiel aus dem String „data1;data2:7;data3“ und
enthält Separator die beiden Strings „;“ und „:;“, so
beinhaltet das Ausgabetupel Substrings die Strings „data1“,
„data2:7“, „data3“ als Ergebnis der Trennung gemäß dem ersten Element von
Separator und die Strings „data1“, „data2“, „7“ und „data3“
als Ergebnis der Trennung gemäß dem zweiten Element von Separator.
Besitzen beide Eingabetupel String und Separator gleich
viele Elemente, so werden sie elementweise bearbeitet, 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. Besteht Separator nur aus einem String, so dienen
die dort definierten Trennsymbole zur Aufteilung sämtlicher Strings des
Eingabetupels String. Weisen die beiden Eingabetupel String
und Separator eine unterschiedliche Anzahl an Elementen auf, die von
1 verschieden ist, so bricht tuple_split mit einem entsprechenden
Fehler ab.
Mehrfache direkt aufeinanderfolgende Trennsymbole in String werden
wie ein Trennsymbol behandelt. Trennsymbole am Anfang und am Ende von
String werden ignoriert.
Falls eines oder beide der Eingabetupel leer sind, gibt der Operator ein leeres Tupel zurück.
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