COPYSTRUCT
Akcia COPYSTRUCT
Funkcia
Akcia skopíruje riadok/riadky alebo celú lokálnu štruktúrovanú premennú do inej lokálnej štruktúrovanej premennej (t.j. lokálna premenná typu Record).
Deklarácia
COPYSTRUCT _dstStruct, _fromRow, _firstRowToCopy[, _lastRowToCopy]
alebo
COPYSTRUCT _dstStruct, _fromRow, _srcStructParametre
_dstStruct | in/out | Identifikátor lokálnej premennej typu Record - cieľová štruktúra. |
_fromRow | in | Identifikátor typu Int - prvý riadok v cieľovej štruktúre (_dstStruct), od ktorého sa budú kopírovať riadok, riadky alebo celá štruktúra. |
_firstRowToCopy | in | Identifikátor riadku lokálnej premennej typu Record - prvý kopírovaný riadok zdrojovej štruktúry. |
_lastRowToCopy | in | Nepovinný parameter - identifikátor riadku lokálnej premennej - posledný kopírovaný riadok zdrojovej štruktúry. |
_srcStruct | in | Identifikátor lokálnej premennej typu Record - zdrojová štruktúra. |
Popis
Akcia skopíruje:
riadok - je zadaný len parameter _firstRowToCopy (bez parametra _firstrowsToCopy)
riadky - oba parametre _firstRowToCopy a parameter _lastRowToCopy sú definované
celú štruktúru - 2. spôsob deklarácie (parameter _srcStruct)
Kopírovanie sa vykoná do lokálnej premennej _dstStruct od riadku daného parametrom _fromRow.
Ak premenná _dstStruct nemá dostatočný rozmer, akcia generuje chybu _ERR_RANGE_ERROR.
Premenné _dstStruct, _firstRowToCopy a _srcStruct musia byť rovnakého typu (rovnaká definícia štruktúry).
Ak sa použije parameter _lastRowToCopy, akcia zo zdrojovej premennej kopíruje riadky ohraničené parametrami _firstRowToCopy a _lastRowToCopy. V tomto prípade je potrebné, aby oba parametre predstavovali riadok rovnakej štruktúry.
Príklad
RECORD (SD.ArchData) _src
RECORD (SD.ArchData) _dst
INT _idx
BEGIN
; naplnenie zdrojovej štruktúry hodnotami od 1 do 10
REDIM _src[10]
_idx := 1
DO_LOOP
EXIT_LOOP _idx > _src\DIM
_src[_idx]^value := _idx
_idx := _idx + 1
END_LOOP
; nastavenie rozmeru cieľovej štruktúry
REDIM _dst[11]
; kopírovanie jedného riadku zo štruktúry _src do štruktúry _dst počínajúc štvrtým riadkom
; _dst[4] <-- _src[5]
COPYSTRUCT _dst, 4, _src[5]
; kopírovanie dvoch riadkov zo štruktúry _src do štruktúry _dst počínajúc tretím riadkom
; _dst[3] <-- _src[5]
; _dst[4] <-- _src[6]
COPYSTRUCT _dst, 3, _src[5], _src[6]
; kopírovanie všetkých riadkov štruktúry _src do štruktúry _dst počínajúc druhým riadkom
; _dst[2] <-- _src[1]
; _dst[3] <-- _src[2]
; _dst[4] <-- _src[3]
; ...
COPYSTRUCT _dst, 2, _src
END Súvisiace stránky: