360 .. -, _________ Приложение

if not EMSErrorFlag then begin

/Создаем базовый объект TEMSVector} TEMSVector.InittASize,0,Sz-1) ;

if not EMSErrorFlag then begin

GetMem(Index,NInd*12);

(Вычисляем множители каждого измерения и формируем список границ Index*}

Index*[NInd,З] :- I; (Младший индекс} Index^INInd,!] :- Indx[NInd,1];

Index^NInd^] := Indx[NInd,2];

for k := NInd-1 downto 1 do begin

Index* [k,l] :=• Indx[k,l];

Index^k^] :» Indx[k,2];

Sz :- 0;

for j :" k+1 to NInd do

Sz :- Зг+^аех^з^-Хг^ех'''^,!!*!)*!"^*!:]^];

Index* [k,3] :- Sz •nd;

MIndex :- NXnd end •nd

•nd; (TEMSArray.lnit) (,....-, -———————;

Destructor TEMSArray.Done;

(Уничтожает объект TEMSArray - уничтожает базовый объект TEMSVector и освобождает память Index"} begin

TEMSVector.Done;

FreeMem(Index,NIndex*12)

•nd; {TEMSArray.Done} ^—-—.—.——————;

Constructor TEMSArray.Load(var F: file);

{Загружает объект TEMSArray из файла S' - сначала загружает базовый объект TEMSVector, затем читает заголовок RegHeadTEMSArray, noneHIndex и список границ индексов} vac

S: String;

k,j: Integer;

begin

TEMSVector.Load(F);

if not EMSErrorFlag then

if ReadFile(F,S,SizeOf(RegHeadTEMSArray)) and

(S=RegHeadTEMSArray) and ReadFile(F,NIndex,2) then begin

GetMem(Index,NIndex*12);

for k :- 1 to NIndex do begin

ReadFile(F,Index*[k,1],4);

ReadFile (F, Index* [1с, 2], 4) ;

ReadFile(F.Index*[k,3],4) •nd;

it EMSErrorFlag then

Done end else begin