|
…ик должен знать формат каждой строки обрабатываемого файла (например, сколько в ней чисел, в каком формате эти числа представлены), чтобы правильно использовать оператор чтения. Если отсутствует информация о количестве элементов строки, то можно воспользоваться функцией
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. Использованные источники информации
2.8.2. Дополнительная литература2.8.3. Информационные ресурсы сети Интернет
[1] Факториал натурального числа N есть произведение всех чисел от 1 до N, то есть N! = 1∙ 2∙...∙N, 0! = 1 Факториал нуля по определению полагается равным единице.
|
|