tuple_substrtuple_substrTupleSubstrTupleSubstrtuple_substr (Operator)

Name

tuple_substrtuple_substrTupleSubstrTupleSubstrtuple_substr — 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)

def tuple_substr(string: MaybeSequence[str], position_1: MaybeSequence[Union[float, int]], position_2: MaybeSequence[Union[float, int]]) -> Sequence[str]

def tuple_substr_s(string: MaybeSequence[str], position_1: MaybeSequence[Union[float, int]], position_2: MaybeSequence[Union[float, int]]) -> str

Beschreibung

tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr schneidet aus jedem String des Eingabetupels StringStringStringStringstringValstring 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 SubstringSubstringSubstringSubstringsubstringsubstring zurück. Die Zahlen „n1“ und „n2“ werden hierbei durch das zweite und dritte Eingabetupel Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 definiert, das jeweils die gleiche Länge haben muss. Enthalten Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 nur jeweils ein Element, so legt dieses Element die Zahlen „n1“ und „n2“ für alle Strings von StringStringStringStringstringValstring fest. Beinhalten Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 genauso viele Elemente wie StringStringStringStringstringValstring, so legen die jeweils ersten Elemente von Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 die Zahlen „n1“ und „n2“ für den ersten String von StringStringStringStringstringValstring fest. Die zweiten Elemente von Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 legen dann die Zahlen „n1“ und „n2“ für den zweiten String von StringStringStringStringstringValstring fest und so weiter. Enthalten Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 mehr als ein Element und besteht StringStringStringStringstringValstring nur aus einem String, so werden aus diesem String mehrere Segmente ausgeschnitten, deren Länge durch die Elemente von Position1Position1Position1Position1position1position_1 und Position2Position2Position2Position2position2position_2 festgelegt sind. Beinhalten alle Eingabetupel mehr als ein Element und unterscheiden sie sich gleichzeitig in der Anzahl der Elemente, so bricht tuple_substrtuple_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr mit einer Fehlermeldung ab.

Falls StringStringStringStringstringValstring ein leeres Tupel ist, gibt der Operator ein leeres Tupel zurück. Falls StringStringStringStringstringValstring nicht leer ist und Position1Position1Position1Position1position1position_1 und/oder Position2Position2Position2Position2position2position_2 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")set_system("tsp_tuple_string_operator_mode","byte") in einen Byte-Modus umgeschaltet werden. Wenn 'filename_encoding'"filename_encoding""filename_encoding""filename_encoding""filename_encoding""filename_encoding" auf 'locale'"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_substrTupleSubstrTupleSubstrTupleSubstrtuple_substr, die innerhalb eines Ausdrucks in der folgenden Syntax verwendet werden kann:

Substring := String{Position1:Position2}

Ausführungsinformationen

Parameter

StringStringStringStringstringValstring (input_control)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Eingabetupel mit zu untersuchenden Strings.

Position1Position1Position1Position1position1position_1 (input_control)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Eingabetupel mit den Start-Positionen „n1“.

Position2Position2Position2Position2position2position_2 (input_control)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Eingabetupel mit den End-Positionen „n2“.

SubstringSubstringSubstringSubstringsubstringsubstring (output_control)  string(-array) HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

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

Alternativen

tuple_str_first_ntuple_str_first_nTupleStrFirstNTupleStrFirstNTupleStrFirstNtuple_str_first_n, tuple_str_last_ntuple_str_last_nTupleStrLastNTupleStrLastNTupleStrLastNtuple_str_last_n, tuple_strstrtuple_strstrTupleStrstrTupleStrstrTupleStrstrtuple_strstr, tuple_strrstrtuple_strrstrTupleStrrstrTupleStrrstrTupleStrrstrtuple_strrstr, tuple_strlentuple_strlenTupleStrlenTupleStrlenTupleStrlentuple_strlen, tuple_strchrtuple_strchrTupleStrchrTupleStrchrTupleStrchrtuple_strchr, tuple_strrchrtuple_strrchrTupleStrrchrTupleStrrchrTupleStrrchrtuple_strrchr, tuple_splittuple_splitTupleSplitTupleSplitTupleSplittuple_split, tuple_environmenttuple_environmentTupleEnvironmentTupleEnvironmentTupleEnvironmenttuple_environment

Modul

Foundation