tuple_splittuple_splitTupleSplitTupleSplit (Operator)

Name

tuple_splittuple_splitTupleSplitTupleSplit — Aufteilen von Strings in mehrere Strings mittels Trennsymbolen.

Signatur

tuple_split( : : String, Separator : Substrings)

Herror tuple_split(const char* String, const char* Separator, char* Substrings)

Herror T_tuple_split(const Htuple String, const Htuple Separator, Htuple* Substrings)

void TupleSplit(const HTuple& String, const HTuple& Separator, HTuple* Substrings)

HTuple HTuple::TupleSplit(const HTuple& Separator) const

static void HOperatorSet.TupleSplit(HTuple stringVal, HTuple separator, out HTuple substrings)

HTuple HTuple.TupleSplit(HTuple separator)

Beschreibung

tuple_splittuple_splitTupleSplitTupleSplitTupleSplit sucht in den einzelnen Strings des Eingabetupels StringStringStringStringstringVal nach einem oder mehreren Trennsymbolen, die in dem Eingabetupel SeparatorSeparatorSeparatorSeparatorseparator definiert sind. Die untersuchten Strings werden dann in die Teil-Strings, die durch die Trennsymbole separiert werden, aufgeteilt. Die beiden Eingabetupel StringStringStringStringstringVal und SeparatorSeparatorSeparatorSeparatorseparator müssen ausschließlich aus Strings bestehen. Anderenfalls bricht tuple_splittuple_splitTupleSplitTupleSplitTupleSplit mit einem entsprechenden Fehler ab. Enthalten die Strings von SeparatorSeparatorSeparatorSeparatorseparator mehr als ein Zeichen, so werden alle in einem String enthaltenen Zeichen als Trennsymbole interpretiert. Beinhaltet StringStringStringStringstringVal nur einen einzigen String, so wird dieser anhand der im Tupel SeparatorSeparatorSeparatorSeparatorseparator definierten Trennsymbole aufgeteilt. Besteht StringStringStringStringstringVal zum Beispiel aus dem String „data1;data2:7;data3“ und enthält SeparatorSeparatorSeparatorSeparatorseparator die beiden Strings „;“ und „:;“, so beinhaltet das Ausgabetupel SubstringsSubstringsSubstringsSubstringssubstrings die Strings „data1“, „data2:7“, „data3“ als Ergebnis der Trennung gemäß dem ersten Element von SeparatorSeparatorSeparatorSeparatorseparator und die Strings „data1“, „data2“, „7“ und „data3“ als Ergebnis der Trennung gemäß dem zweiten Element von SeparatorSeparatorSeparatorSeparatorseparator. Besitzen beide Eingabetupel StringStringStringStringstringVal und SeparatorSeparatorSeparatorSeparatorseparator gleich viele Elemente, so werden sie elementweise bearbeitet, das heißt, der erste String von StringStringStringStringstringVal wird gemäß den Trennsymbolen des ersten Strings von SeparatorSeparatorSeparatorSeparatorseparator aufgeteilt, der zweite String von StringStringStringStringstringVal wird gemäß den Trennsymbolen des zweiten Strings von SeparatorSeparatorSeparatorSeparatorseparator aufgeteilt und so weiter. Besteht SeparatorSeparatorSeparatorSeparatorseparator nur aus einem String, so dienen die dort definierten Trennsymbole zur Aufteilung sämtlicher Strings des Eingabetupels StringStringStringStringstringVal. Weisen die beiden Eingabetupel StringStringStringStringstringVal und SeparatorSeparatorSeparatorSeparatorseparator eine unterschiedliche Anzahl an Elementen auf, die von 1 verschieden ist, so bricht tuple_splittuple_splitTupleSplitTupleSplitTupleSplit mit einem entsprechenden Fehler ab. Mehrfache direkt aufeinanderfolgende Trennsymbole in StringStringStringStringstringVal werden wie ein Trennsymbol behandelt. Trennsymbole am Anfang und am Ende von StringStringStringStringstringVal 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')set_system("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte")SetSystem("tsp_tuple_string_operator_mode", "byte") in einen Byte-Modus umgeschaltet werden. Wenn 'filename_encoding'"filename_encoding""filename_encoding""filename_encoding""filename_encoding" auf 'locale'"locale""locale""locale""locale" gesetzt ist (legacy), verwendet dieser Operator immer den Byte-Modus.

Für allgemeine Informationen zu String-Operationen siehe auch Tupel / String-Operationen.

HDevelop Inline-Operation

HDevelop unterstützt eine Inline-Operation für tuple_splittuple_splitTupleSplitTupleSplitTupleSplit, die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden kann:

Substrings := split(String, Separator)

Ausführungsinformationen

Parameter

StringStringStringStringstringVal (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Eingabetupel mit aufzuteilenden Strings.

SeparatorSeparatorSeparatorSeparatorseparator (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Eingabetupel mit Trennsymbolen.

SubstringsSubstringsSubstringsSubstringssubstrings (output_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Teil-Strings nach Aufteilung mittels Trennsymbolen.

Alternativen

tuple_strstrtuple_strstrTupleStrstrTupleStrstrTupleStrstr, tuple_strrstrtuple_strrstrTupleStrrstrTupleStrrstrTupleStrrstr, tuple_strchrtuple_strchrTupleStrchrTupleStrchrTupleStrchr, tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchr, tuple_strlentuple_strlenTupleStrlenTupleStrlenTupleStrlen, tuple_str_first_ntuple_str_first_nTupleStrFirstNTupleStrFirstNTupleStrFirstN, tuple_str_last_ntuple_str_last_nTupleStrLastNTupleStrLastNTupleStrLastN, tuple_environmenttuple_environmentTupleEnvironmentTupleEnvironmentTupleEnvironment

Modul

Foundation