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, _srcStruct

Parametre
_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.

Poznámka: ak nie je daný, akcia skopíruje len riadok daný parametrom _firstRowToCopy.
_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:

Napíšte komentár