…ик должен знать формат каждой строки обрабатываемого файла (например, сколько в ней чисел, в каком формате эти числа представлены), чтобы правильно использовать оператор чтения. Если отсутствует информация о количестве элементов строки, то можно воспользоваться функцией

SeekEoln (<имя логического текстового файла>);

функция сообщает о конце строки, если в ней не осталось непрочитанных символов, отличных от пробелов и табуляций.

Рассмотрим пример использования этих языковых средств. Допустим, с помощью текстового редактора подготовлен текстовый файл, содержащий вещественные числа. По некоторым причинам числа размещены в “свободном формате”, то есть строки содержат разное число чисел, содержат пробелы в конце строк, пустые строки могут встретиться в любом месте файла. Пример такого текста приведен ниже:

-2.3  34.5  3  45  45.56

34  -4.67

36.90

23  4  -89  4.67

12.45  4  567

-56.7

4

Требуется отформатировать этот текст, поместив на каждой строке только по три числа и удалив все лишние пробелы и пустые строки, то есть получить текст вида:

-2.30   34.50    3.00

45.00   45.56   34.00

-4.67   36.90    23.00

4.00    -89.00   4.67

12.45    4.00     567.00

-56.70   4.00

Данную задачу решает следующая программа.

program format;

var

  old, { исходный файл }

  new: Text; { результирующий файл }

  count: Word;

  x: real;

begin

  assign(old, 'OLD.TXT');

  reset(old);

  assign(New, 'NEW.TXT');

  rewrite(New);

  count := 0;

  while not SeekEof(old) do { пока в файле есть непустые строки }

  begin

     while not SeekEoln(old) do { пока в строке есть числа }

     begin

       count := count + 1;

       read(old, X); { читаем одно число из строки }

       write(New, X:8:2, ' '); { записываем это число }

       if count = 3 then { если записали 3 числа }

       begin { то }

          count := 0;

          writeln(New); { переходим на новую строку }

       end;

     end;

  end;

CloseFile(old);

CloseFile(New);

end.

2.8.         Литература

2.8.1.    Использованные источники информации

  1. Грудзинский А.О., Мееров И.Б., Сысоев А.В. Методы программирования. Курс на основе языка Object Pascal.– Нижний Новгород: Изд-во Нижегородского госуниверситета, 2006. – С. 392.
  2. Кетков Ю.Л., Кетков А.Ю. Свободное программное обеспечение. Free Pascal для студентов и школьников – СПб.: БХВ-Петербург, 2011. – 384 c.
  3. Грогоно П. Программирование на языке Паскаль.–М.: Наука, 1982. – 382с.
  4. Епанешников А.М., Епанешников В.А. Turbo Pascal 7.0. М: Стрикс, 1997. – 336c.
  5. Культин Н.Б. Turbo Pascal в задачах и примерах –СПб.: БХВ-Петербург, 2000. – 256с.
  6. Немнюгин С.А. Turbo Pascal.–СПб.: Питер, 2000. – 496с.
  7. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие.–М.: Нолидж, 1997. – 616с.
  8. Язык прогррамирование TurboPascal.

2.8.2.    Дополнительная литература

2.8.3.     Информационные ресурсы сети Интернет

[http://pascalbook.ru].

  1. Free Pascal –advanced open source Pascal compiler for Pascaland Object Pascal.

[http://www.freepascal.org].



[1] Факториал натурального числа N есть произведение всех чисел от 1 до N, то есть

N! = 1∙ 2∙...∙N,

0!  = 1

Факториал нуля по определению полагается равным единице.

 

Бесплатный конструктор сайтов - uCoz