tuple_substrtuple_substrTupleSubstrTupleSubstr (Operator)

Name

tuple_substrtuple_substrTupleSubstrTupleSubstr — Ausschneiden von Zeichen ab Position „n1“ bis einschließlich „n2“ aus einem Stringtupel.

Signatur

tuple_substr( : : String, Position1, Position2 : Substring)

Herror tuple_substr(const char* String, const Hlong Position1, const Hlong Position2, char* Substring)

Herror T_tuple_substr(const Htuple String, const Htuple Position1, const Htuple Position2, Htuple* Substring)

void TupleSubstr(const HTuple& String, const HTuple& Position1, const HTuple& Position2, HTuple* Substring)

HTuple HTuple::TupleSubstr(const HTuple& Position1, const HTuple& Position2) const

static void HOperatorSet.TupleSubstr(HTuple stringVal, HTuple position1, HTuple position2, out HTuple substring)

HTuple HTuple.TupleSubstr(HTuple position1, HTuple position2)

Beschreibung

tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstr schneidet aus jedem String des Eingabetupels StringStringStringStringstringVal alle Zeichen beginnend mit dem Zeichen an der Position „n1“ bis einschließlich zur Position „n2“ aus und liefert sie als einen neuen String in dem Ausgabetupel SubstringSubstringSubstringSubstringsubstring zurück. Die Zahlen „n1“ und „n2“ werden hierbei durch das zweite und dritte Eingabetupel Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 definiert, das jeweils die gleiche Länge haben muss. Enthalten Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 nur jeweils ein Element, so legt dieses Element die Zahlen „n1“ und „n2“ für alle Strings von StringStringStringStringstringVal fest. Beinhalten Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 genauso viele Elemente wie StringStringStringStringstringVal, so legen die jeweils ersten Elemente von Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 die Zahlen „n1“ und „n2“ für den ersten String von StringStringStringStringstringVal fest. Die zweiten Elemente von Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 legen dann die Zahlen „n1“ und „n2“ für den zweiten String von StringStringStringStringstringVal fest und so weiter. Enthalten Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 mehr als ein Element und besteht StringStringStringStringstringVal nur aus einem String, so werden aus diesem String mehrere Segmente ausgeschnitten, deren Länge durch die Elemente von Position1Position1Position1Position1position1 und Position2Position2Position2Position2position2 festgelegt sind. Beinhalten alle Eingabetupel mehr als ein Element und unterscheiden sie sich gleichzeitig in der Anzahl der Elemente, so bricht tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstr mit einer Fehlermeldung ab.

Falls StringStringStringStringstringVal ein leeres Tupel ist, gibt der Operator ein leeres Tupel zurück. Falls StringStringStringStringstringVal nicht leer ist und Position1Position1Position1Position1position1 und/oder Position2Position2Position2Position2position2 leere Tupel sind, wird eine Fehlermeldung angezeigt.

Unicode Codepoints versus Bytes

Die Positionen beziehen sich auf Unicode Codepoints. Ein Codepoint kann aus mehreren Bytes im UTF-8 String zusammengesetzt sein. Wenn die Positionen sich auf die Bytes des Strings beziehen 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_substrtuple_substrTupleSubstrTupleSubstrTupleSubstr, die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden kann:

Substring := String{Position1:Position2}

Ausführungsinformationen

Parameter

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

Eingabetupel mit zu untersuchenden Strings.

Position1Position1Position1Position1position1 (input_control)  number(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Eingabetupel mit den Start-Positionen „n1“.

Position2Position2Position2Position2position2 (input_control)  number(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Eingabetupel mit den End-Positionen „n2“.

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

Alle Zeichen von den Positionen „n1“ bis „n2“ für alle Eingabestrings.

Alternativen

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

Modul

Foundation