Вернуться к статье
Листинг 2. Запись метки за концом файла
program WRITE_END_MARK;

const
      FileName = 'file.bin';
      EndMark  = 'сов. секретно';
var
      F    : file of byte;
      Mark : string [80];
      Len  : real;
      I    : integer;
      B    : byte;
begin
      TextColor (LightGray);
      TextBackGround (Black);
      Mark := EndMark;
      Assign (F, FileName);
(*$I-*)
      Reset (F);
(*$I+*)
      if IoResult <> 0
      then
           begin
                 WriteLn ('Не найден файл "' + FileName + '"...');
                 Halt (-1)
           end;
      Len := LongFileSize (F);
      if 512 - Frac (Len / 512) * 512 < Length (Mark)
      then
           begin
                 WriteLn ('***Нет места для записи метки***');
                 Halt (-1)
           end;
      LongSeek (F, Len);
      for I := 1 to Length (Mark)
      do
         begin
               B := Ord (Mark [I]);
               Write (F, B);
         end;
      LongSeek (F, Len);
      Truncate (F);
      Close (F);
      WriteLn ('***Метка записана***');
      Halt (0)
end. (* WRITE_END_MARK *)

Вернуться к статье
540