ClassesClasses | | Operators

Use the tabs on the upper right to switch to a different programming language.

Use the tabs on the upper right to switch to a different programming language.

Use the tabs on the upper right to switch to a different programming language.

insertinsertInsertInsert (Operator)

Name

insertinsertInsertInsert — Assignment of a value to a tuple element.

Warning

This operator is obsolete and should no longer be used explicitly in new programs. The modifying version of the insertinsertInsertInsertInsert operator was replaced by the operator assign_atassign_atAssignAtAssignAtAssignAt. This operator uses the same notation in the full text editor, so that it is used automatically. The non-modifying version of the insertinsertInsertInsertInsert operator is replaced by the new operator tuple_replacetuple_replaceTupleReplaceTupleReplaceTupleReplace.

Signature

insert( : : Input, Value, Index : Result)

Herror insert(double Input, double Value, const Hlong Index, double* Result)

Herror T_insert(const Htuple Input, const Htuple Value, const Htuple Index, Htuple* Result)

void Insert(const HTuple& Input, const HTuple& Value, const HTuple& Index, HTuple* Result)

static void HOperatorSet.Insert(HTuple input, HTuple value, HTuple index, out HTuple result)

Description

insertinsertInsertInsertInsert assigns a single value to a specific element of a tuple.

In the full text editor an insert operation is simply entered with the help of the assignment operator sign := and the index access operator sign [ ] for the result variable, e.g.:

  Areas[Radius-1] := Area

If the operator window is used for entering the insert operator, insert must be entered into the operator combo box as the operator name. This opens the parameter area, where the parameter ValueValueValueValuevalue represents the expression that has to be evaluated to one value and assigned to the element at position IndexIndexIndexIndexindex within the tuple InputInputInputInputinput. The parameter ResultResultResultResultresult gets the name of the variable where the result has to be stored.

If the input tuple that is passed via the parameter InputInputInputInputinput and the output tuple that is passed in ResultResultResultResultresult are identical (and only in that case), the insertinsertInsertInsertInsert operator is listed and can be written in the full text editor in the above assignment notation. In this case, the input tuple is modified and the correct operator notation for above assignment would be:

   insert (Areas, Area, Radius-1, Areas)

If the InputInputInputInputinput tuple and the ResultResultResultResultresult tuple differ, the input tuple will not be modified. In this case, within the program listing only the operator notation can be used:

   insert (Areas, Area, Radius-1, Result)

This is the same as:

  Result := Areas
  Result[Radius-1] := Area

Please note that the operator insertinsertInsertInsertInsert will not increase the tuple if the tuple already stores a value at the passed index. Instead of that the element at the position IndexIndexIndexIndexindex will be replaced. Hence, for the ValueValueValueValuevalue parameter exactly one single value (or an expression that evaluates to one single value) must be passed.

If the passed IndexIndexIndexIndexindex parameter is beyond the current tuple size, the tuple will be increased to the required size. The tuple elements that were inserted between the hitherto last element and the new element are undefined.

Parameters

InputInputInputInputinput (input_control)  real(-array) HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Tuple, where the new value has to be inserted.

Default value: []

ValueValueValueValuevalue (input_control)  real HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Value that has to be inserted.

Default value: 1

Typical range of values: 0 ≤ Value Value Value Value value ≤ 1000000

IndexIndexIndexIndexindex (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Index position for new value.

Default value: 0

Suggested values: 0, 1, 2, 3, 4, 5, 6

Minimum increment: 1

ResultResultResultResultresult (output_control)  real(-array) HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Result tuple with inserted values.

Result

If the expression is correct insertinsertInsertInsertInsert returns 2 (H_MSG_TRUE). Otherwise an exception is raised and an error code returned.

Alternatives

assignassignAssignAssignAssign

Module

Foundation


ClassesClasses | | Operators