Тексты программ___ ____ ____ ______________ 395
if FColl'-.CuuntOO then begin k := 0;
repeat
ch := FColl^Atfk) ;
inc (It);
until (ch".Name°=FName) or ()<=FColl^. Count) ;
if eh".Name=FName then
Exit end;
{Подготовить очередную запись:} New(ch) ;
ch'^.Name := FName;
ch^.SizO := FileSize(FF);
sz :° 512; (Длина блока чтения} if c^.Siz0^512 then
sz := ch^-SizO; {Файл меньше 512 байт} FillCharfch^.SecO,512,0) ;
BlockReadfFFyCh^.SecO,S2,nz) ;
Close(FF) ;
if nzosz then
MsgC Ошибка чтения из файла '-(•ch^-NanIS) else if not LowMemory then begin
FColl".Insert(ch) ;
FChange := True end else
k := MessageBox('Исчерпана доступная память', NIL,0) end end; {SetFile} ^-_——__—_——-_——;
Procedure BuildArch;
{Создает архивный файл} var
k,S13,013,h,s: Word;
c: CheckType;
ch^CheckType;
Din: TDisk;
begin
Rewrite(F);
if lOResuit <> 0 then begin
WriteLn('Невозможно открыть/создать файл данных );
Halt end;
{Создаем заголовок файла) with Head do begin
Hd := 'ANTIVIR';
{Подсчитываем КС BIOS} BIOS := 0;
for k := 0 to $FFFF do
BIOS := BIOS+Mem[$FOOO:k] ;
{Определяем вход в Intl3} asm
aov ah,$13
Int $2F
push ds (Сегмент)
push dx {Смещение)