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) ^-_————__——————_