fff: file;

LOld: Longint;

label

NotBack,NotFag;

begin

LOld := FIleSize(fe); {Запоминаем ffvapya длину файла) if BakFile then begin

n :- copy(NE,l,pos('.',ME))+'BAK';

Assign(fb,n);

l$I-l Rewrite(fb,l) ;

{!+}

if lOResult <> 0 then NotBack:

WriteLn(1Невозможно соэдать резервную копию ',п) else begin

Seek(fe,0) ;

L := LOld;

repeat

s := 65520;

if L < s then s := L;

if MaxAvail < s then s :•= MaxAvail;

GetMemfp, s);

BlockReadtfetp^tStk);

if not CheckRead(NE,s,k) then Exit;

BlockWriteffb.p^tS.k);

if not CheckWrite(n,s,k) then goto NotBaek;

FreeMem(p,s);

dec(L,s) until L=0;

Close(fb) end end;

Seek(fe,0);

BlockWrite(fe,HH,SizeOf(H),k); (Пишем новый заголовок} if CheckWrite(ne,SizeOf(H),k) then begin

Randomize; (Инициируем генератор} HH.Key := Random($FFFF); (Получаем ключ} for k := 1 to 12 do with HH,HH.Head24 do

W[k] :° W[k] xor Key; (Шифруем заголовок} Seek(fe,LS*16); (Смещаем на границу параграфа} (Записываем ключ} BlockWrite(fe,HH,SizeOf(НН),k) ;

it CheckWrite(ne,SizeOf(HH),k) then begin

(Записываем фаг} Bloc]<Write(fe,CFag'',LFag,k) ;

if CheckWrite(ne,LFag,k) then

HriteLn(NE,' защищен') else

goto NotFag end