Write(F,с) ;
end (если непустой описатель) until S»0
end; {есть хотя бы один ЛД} {Записываем заголовок архива} BegDat ;= FilePos(F) ;
Seek(F,0) ;
Write(F,Head.CT) ;
Seek(F,BegDat);
(Защищаем COMMAND.СОМ} SetFile(GetEnv('COM3 PEC'));
end; (BuildHead} ^————————————;
Function CheckHead: Boolean;
(Проверяет заголовок архивного файла} var
s: String;
k: Word;
Sum: LongInt;
DI: TDisk;
begin
{Подсчитываем КС BIOS}
Sum := 0;
for k := 0 to $FFFF do Sum := Sum+Mem[$FOOO:k] ;
{Получаем конструктивные параметры ЖД}
GetDiskInfo(2,DI) ;
(Читаем заголовок архива}
Read(F,Head.CT) ;
(Проверяем его}
S := •ANTIVIR';
with Head do
if (Hdos) or (SumOBIOS) or
not Equal(Begl3,IntlJ^,SizeOf(Begl3)) or (SecTrODl.TrackSiz) or (HeaasODI. Heads) then begin
WriteLn('Архивный файл содержит ошибочные данные!');
if not Okay('Создать новый архив') then
Halt else
CheckHead := False end else
CheckHead :» True end; {CheckHead} ^————————————;
Function Auto: Boolean;
{Контролирует параметры обращения, открывает или создает DAT-файл. Возвращает
TRUE, если обнаружен ключ /AUTO}
var
s: String;
к,j: Byte;
AF: Boolean; Флаг ключа /АОТО}
с: CheckType absolute Head;
313,013: Word;
DI: TDisK;
labe.i.
SetF,Errria;
const
tx='Архивный файл содержит ошиоо-чные данные. Создать новый файл ;