скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Как прочитать весь файл, в котором несколько признаков конца файла



Поймали злые чечены академика, математика и программиста. Привели их на крышу высотного дома и сказали, типа внизу натянут тент, кто спрыгнет и на тент попадет, тот типа жив останется. Академик развел теорию, долго чего-то думал, прыгнул - разбился. Математик быстро посчитал, прикинул, все учел, пригнул и попал на тент, вобщем спасся. Программист думает: "Ну, математик все сосчитал, я сейчас так же сделаю." Разбегается, прыгает, и с воплем: "Блин, перепутал знак!" улетает в небо...

В текстовом файле, который обрабатывает программа, неоднократно встречается признак конца файла (как этот файл создавался никто и понятия не имеет), и как следствие если читать файл while not (eof), то он будет прочитан до первого встреченного символа конца файла :(.

Как прочитать весь файл?

Перепишем ваш файл a.dat в файл b.dat, удалив признаки конца файла:


var
  f1,f2 :file of Byte;
  a :Byte;
  i :Longint;
begin
  {$I-}
  AssignFile(f1, 'a.dat');
  AssignFile(f2, 'b.dat');
  Reset(f1);
  Rewrite(f2);
  for i := 1 to FileSize(f1) do
  begin
     Read(f1, a);
     if a <> 26 then Write(f2, a);
  end;
  CloseFile(f1);
  CloseFile(f2);
end.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook