Основы программирования. Файлы. Рекурсия - 14 стр.

UptoLike

Составители: 

16
Append(f)процедура, открывающая текстовый файл в режиме добавле-
ния. Файловый указатель при этом устанавливается на маркер конца файла. Если
файл не существует, то происходит ошибка времени выполнения.
Eoln(f)функция, возвращающая True, если файловый указатель стоит
на маркере конца строки.
SeekEof(f)функция, пропускающая все пробелы, символы табуляции и
символы перехода на
новую строку, после чего возвращающая то же, что и
Eof(f).
SeekEoln(f)функция, пропускающая все пробелы и символы табуля-
ции, после чего возвращающая то же, что и Eoln(f).
Две последние функции обычно используются для ввода чисел.
Для текстовых файлов подпрограммы Truncate, Seek, FileSize,
FilePos не применяются: их использование приведет к ошибке компиляции
.
Рассмотрим несколько примеров, иллюстрирующих основные действия с
текстовыми файлами.
Пример 1. Дан текстовый файл a.txt, содержащий целые числа, разделенные
любым количеством пробелов или символов перехода на новую строчку. Найти
их количество и сумму.
Приведем пример подобного файла:
5 3 <EOLN>
4<EOLN>
77 8 <EOF>
Решение 1. Поэлементная обработка.
Вместо Eof будем использовать функцию SeekEof, которая пропускает
пробельные
символы перед тем как проанализировать состояние конца файла. Это
важно при считывании последнего числа: после считывания числа 8 файловый
указатель будет находиться на пробеле после него; вызов SeekEof продвинет
указатель на конец файла и вернет True. Для обработки возможных ошибок вво-
да окаймим также тело цикла блоком try с пустой секцией except
: в случае
ошибки в файле нечисловые символы будут пропущены. Далее приводится пол-
ный текст первого варианта решения.
uses SysUtils;
var f: text;
s,c,x: integer;
begin
Assign(f,'a.txt');
Reset(f);
s:=0;
c:=0;
while not SeekEof(f) do