EMSError($A6);

TEMSVector. Done and

end; {TEMSArray.Load} /————————————;

Procedure TEMSArray.Store(var F: File);

{Сохраняет объект TEMSArray в файле - сохраняет базовый объект TEMSVector, затем пишет заголовок, поле NIndex и список границ индексов} var

It: Word;

begin

TEMSVector.Store(F);

if not EMSErrorFlag then

if WriteFile(F,RegHeadTEMSArray,SizeOf(RegHeadTEMSArray)) and WriteFile(F,NIndex,4) then for k := 1 to NIndex do begin

WriteFile(F,bndex^[k,1],4) ;

WriteFile(F,Index"[k,2],4) ;

WriteFile(F,Index*[k,3],4) • end

end; {TEMSArray.Store} /-—————————— ——}

Function TEMSArray.GetVecIndex(var Ind): Longint;

{По текущим значениям списка индексов Ind вычисляет индекс для объекта TEMSVector} var

Indx: TIndexList absolute Ind;

N: Longint;

k: Word;

begin

EMSErrorFlag •.•=• False;

N := О;

for k :- 1 to NIndex do l$IFNDEF NOTCHECKf

if (Indx[k]<Index"[k,ll) or (Indx[k]>Index^[k,2]) then

EMSErrorFlag :•= True else {$end.IF}

N :» N+dndxtkl-Index^tk^jrindax^Ik.S];

i? EMSErrorFlag then

EMSError($AB) else

GetVecIndex :« N-1 end; {TEMSArray.GetVecIndex} ^_-_——————————;

Procedure TEMSArray.SetItem(var Source,Ind);

{Помещает значение Source в элемент многомерного массива} var

N: Longint;

begin

N := GetVecIndex(Ind) ;

{$IFNDEF NOTCHECK}

if not EMSErrorFlag then ($endIF}

TEMSVector.SetItem(Source,N) end; {TEMSArray.SetItem) ^-_————__——————_