{Выводит сообщение 'Нет доступа...' и справку} begin
WriteLn('Нет доступа к файлу ',s);
Help
end; {NotAccess} ^————————-.. ..„^
Function CheckReadfs: String; k,n: Word):Boolean;
(Проверяет корректность чтения и дает сообщение, если требуемое количество К байт не равно прочитанному N байт} begin
if kon then begin
WriteLn('Ошибка чтения из файла ',s);
CheckRead := False end else
CheckRead :°= True end; {CheckRead} ^————————————;
Function CheckWrite(s: String; k,n: Word): Boolean;
{Проверяет корректность записи и дает сообщение, если требуемое количество К байт не равно записанному N байт} begin
if kon then begin
WriteLn('Ошибка записи в файл ',s);
CheckWrite := False end else
Checktorite :=» True end; {CheckRead} /————————————;
Procedure OpenFag;
{Открывает файл-фаг и считывает его код в динамическую память} var
k: Word;
begin
Assign(ff,NF) ;
{$!-}
Reset (ff,l) ;
{$!+}
if IQResult <> 0 then NotAccess(NF) ;
BlockRead(ff,HFag,SizeOf(HFag),k) ;
if not CheckRead(NF,SizeOf(HFag),k) then Halt;
LFag := File3ize(ff)-HFag.HdrSize*16-SizeOf(TKey);
GetMem(CFag,LFag) ;
Seek(ff,FileSize(ff)-LFag),•
BlockRead(ff, СЕ-ад", LFag, k) ;
if not CheckRead(NF,LFag,k) then Halt;
Close(ff) end; {OpenFag} _•————————————/
Function CheckFile: Boolean;
{Проверяет возможность установки защиты и готовит новый заголовок файла} va.s
г: registers;
s: String [1];