Akcia SET WITH
Funkcia | Zmena viacerých hodnôt súčasne (vždy v súvislosti so štruktúrami). | ||||||
Deklarácia | SET dstIdent_Rec WITH srcIdent_Rec |
||||||
Parametre |
|
||||||
Popis |
Parametre dstIdent_Rec a srcIdent_Rec musia mať vždy rovnaký typ štruktúry (ináč
akcia generuje chybu _ERR_RECORD_NO_COMP) a taktiež rovnaký rozmer. Môžu byť typu:
Preto napríklad kombinácia:
RECORD (SD.RecordDef)
_lArr1
nie je možná a editor skriptov pri kompilácii vyhlási chybu.
RECORD (SD.RecordDef)
_lArr1
Akcia SET WITH bude generovať chybu _ERR_RANGE_ERROR (rozmer objektu SV.Struktura
je 10 riadkov a rozmer lokálnej premennej _lArr1 po deklarácii len 1 riadok).
RECORD (SD.RecordDef)
_lArr1 Pri kopírovaní hodnôt do lokálnej premennej typu RECORD, ktorá obsahuje položky typu Objekt, akcia nastavuje hodnoty objektov, na ktoré jednotlivé nastavované položky ukazujú. Tento efekt nie je vždy žiaduci. Preto pri deklarácii lokálnej premennej typu RECORD je možné uviesť modifikátor NOALIAS nasledovne: RECORD NOALIAS (SD.RecordDef) _lArr1
Pre takto definovanú lokálnu premennú, všetky položky typu Objekt majú vypnutú vlastnosť
smerovania. Nemajú vopred definovaný typ. Je možné do nich priradiť hodnotu ľubovoľného typu.
_lArr1[1]^Object := 1 Pozri: |
||||||
Príklad |
RECORD (SD.RecordDef) _lArr1 RECORD (SD.RecordDef) _lArr2 INT _index REDIM _lArr1[5] REDIM _lArr2[5] ;... naplnenie hodnôt lokálnej premennej lArr1 ; prenesenie hodnôt z 3-tieho riadku v premennej _lArr1 ; do 2-hého riadku v premennej _lArr2 SET _lArr2[2] WITH _lArr1[3] ; prenesenie celej hodnoty pomocou cyklu ; predpokladá sa rovnaký rozmer polí _index := 1 NextRow: IF _index <= _lArr1\DIM THEN SET _lArr2[_index] WITH _lArr1[_index] _index := _index + 1 GOTO NextRow ENDIF ; zhodný výsledok dosiahneme použitím akcie SET WITH SET _lArr2 WITH _lArr1 |
Súvisiace stránky:
0 komentárov