end end;
{Проверяем существование файла) if Pos('.',FName)=0 then FMame := FName+'.CHR' ;
{$!-} {Отключаем контроль lOEtrorf Assign(F,FName);
Reset(F,1); {Пытаемся открыть файл} {$!+} {Восстанавливаем контроль ЮЕггог} if IQResultoO then begin
WriteLn('Файл '+FName+' не найден');
Goto Loop end;
{Читаем заголовок файла} FontRead(FontHead,SizeOf(FontHead)) ;
if FontHead. FontFileIDoHead then begin
WriteLn('Ошибка в заголовке файла!');
Goto Loop end;
{Ищем смещение блока параметров и длину файла'} with FontHead do begin
k := 5; {Начинаем с пятого байта} while (kOizedf (FontHead)) and (B[k]o$lA) do inc(k);
if B[k]=$lA then begin
HeaaerSize := B[k+l]+B[k+2] ehl 8;
FileSize := B[k+7]+B[k+8] ahl 8;
AFileSize := k+7;
{Читаем блок параметров} Seek(F,HeaderSize) ;
FontRead(FontPara,SizeOf(FontPara)) ;
if FontPara.ParPrefix='+' then
Exit {Нормальный выход) else /Her префикса параметров}
Goto HeadErr end end;
{Не найден терминатор CopycightEnd) HeadErr:
Close(F) ;
WriteLn('Ошибка в заголовке файла!');
Goto Loop end; {Каше Input} {—————} Procedure ReadData;
{Читает данные из файла} var
k: Integer;
LastChar: Byte;
begin
with FontPara do begin
LastChar := FirstChar+CharsCount-1;
{Заполняем таблицу смещений} for k := 0 to 255 do
if k in [FirstChar..LastChar] than