COPYSTRUCT

COPYSTRUCT

COPYSTRUCT action


Function

The action copies the specified row/rows of the structured local variable to other local structured variable (i.e. local variable of Record type).

Declaration

COPYSTRUCT _dstStruct, _fromRow, _firstRowToCopy[, _lastRowToCopy]

 

 

or

 

COPYSTRUCT _dstStruct, _fromRow, _srcStruct

 

Parameters

_dstStruct

in/out

Identifier of local variable of Record type - destination structure.

_fromRow>

in

Identifier of Int type - first row in destination structure (_dstStruct). Specified row, rows or whole structure will be copied (inserted) to destination structure from it (including).

_firstRowToCopy

in

Identifier of a row of source local variable - first row to be copied.

_lastRowToCopy

in

Optional parameter - identifier of a row of source local variable - last row to be copied.

Note: If the parameter is not specified, the action will copy just the row specified by the parameter _firstRowToCopy.

 

Description

The action copies:

  • one row - only the parameter _firstRowToCopy is specified (the parameter _lastRowToCopy is NOT)

  • rows - both the parameters _firstRowToCopy and _lastRowToCopy are defined

  • whole structure - 2nd declaration (the parameter _srcStruct)

The row, rows or entire structure to be copied and inserted into the local variable specified by the parameter _dstStruct on the position given by the parameter _fromRow and below.
If the size of destination structure _dstStruct is not sufficient, the action will generate the error _ERR_RANGE_ERROR.

The local variables _dstStruct, _firstRowToCopy and _srcStruct must be the same type (they must have the same structure definition).

If the parameter _lastRowToCopy is specified, the action copies the rows between the parameters _firstRowToCopy and _lastRowToCopy including. In this case both the parameters must represent a row of the same structure.

Example

RECORD (SD.ArchData) _src RECORD (SD.ArchData) _dst INT _idx BEGIN ; fill source variable with values from 1 to 10 REDIM _src[10] _idx := 1 DO_LOOP EXIT_LOOP _idx > _src\DIM _src[_idx]^value := _idx _idx := _idx + 1 END_LOOP ; set the size of destination variable REDIM _dst[11] ; copy one row from structure _src to 4th row of structure _dst ; _dst[4] <-- _src[5] COPYSTRUCT _dst, 4, _src[5] ; copy two rows from structure _src to structure _dst (from 3rd row down) ; _dst[3] <-- _src[5] ; _dst[4] <-- _src[6] COPYSTRUCT _dst, 3, _src[5], _src[6] ; copy all rows from structure _src to structure _dst (from 2nd row below) ; _dst[2] <-- _src[1] ; _dst[3] <-- _src[2] ; _dst[4] <-- _src[3] ; ... COPYSTRUCT _dst, 2, _src END

 


Related pages:

Script actions