Akcia REDIM


Funkcia
Zmena rozmeru (počet riadkov) lokálnej štruktúrovanej premennej alebo objektu typu Štruktúrovaná premenná.
Deklarácia
REDIM rec[newDim]

Parametre
rec out Meno lokálnej štruktúrovanej premennej alebo objektu typu Štruktúrovaná premenná alebo typový ALIAS.
newDim in Výraz typu Int - nový rozmer (počet riadkov).

Popis
Zmena počtu riadkov nemá za následok stratu hodnôt v položkách, ktoré existovali pred akciou (zväčšenie rozmeru poľa).
Pre hodnotu lokálnej štruktúrovanej premennej platí, že novo vzniknuté položky sú inicializované na neplatnú hodnotu a minimálny počet riadkov (newDim) je 0.
Ak počas zmeny rozmeru štruktúrovanej premennej dôjde k nedostatku pamäte, akcia spôsobí prerušenie vykonávania skriptu a generuje chybu ERR_RANGE_ERROR s príslušným popisom. Hodnota premennej sa nezmení.

Pre hodnotu objektu typu Štruktúrovaná premenná platí, že novo vzniknuté položky majú konfigurované všetky vlastnosti ako Zdedené (štartovacia hodnota, medze, ...). Minimálny rozmer je 1.
Dôležité je uvedomiť si, že zmena rozmeru objektu Štruktúrovaná premenná je konfiguračný zásah (ako taký je vykonávaný v kontexte procesu D2000 Server a jeho výsledok sa ukladá do konfiguračnej databázy). Čas zmeny konfigurácie objektu je nastavený na aktuálny čas.
Akcia REDIM zlyhá (prerušením vykonávania skriptu) napríklad vtedy, ak je príslušný objekt otvorený za účelom editácie (pri prerušení skriptu sa nastavuje premenná _ERR_NR_TRANS_EX, ktorá bližšie popisuje chybu).


Príklad 1
Skopírovanie hodnôt z objektu SV.Struktura do lokálnej premennej typu RECORD.
 
 ; deklarácia premennej
 RECORD NOALIAS (SD.RecordDef) _locRec
 
 ; zmena rozmeru (počtu riadkov)
 REDIM _locRec[SV.Struktura\DIM]
 
 ; kopírovanie hodnoty
 SET _locRec WITH SV.Struktura 

Príklad 2
Zmena rozmeru objektu typu Štruktúrovaná premenná:
 
 ; deklarácia typového ALIASu
 ALIAS (SD._System_Redundancy) _aList
 
 ; jeho nasmerovanie na objekt SV._System_Redundancy
 SET _aList  AS SV._System_Redundancy
 
 ; zmena rozmeru na 10
 REDIM _aList[10]
 
 ;alebo iným spôsobom - zmena rozmeru na 5
 REDIM SV._System_Redundancy[5]  


Súvisiace stránky:

Napíšte komentár