Лекция №19. Текстовые файлы. Процедуры и функции для обработки текстовых файлов
Текстовые файлы предназначены для хранения текстовой информации. Именно в таких файлах хранятся исходные тексты программ. Текстовый файл – это последовательность строк различной длины, отделенных друг от друга специальными символами-разделителями.
Доступ к каждой строке возможен только последовательно, начиная с первой. При создании текстового файла в конце каждой строки ставится специальный признак EOLN (End Of Line), а в конце всего файла – признак EOF (End Of File). Эти признаки можно протестировать одноименными логическими функциями - EOLN и EOF.
EOLN (<ф.п.>): Boolean;
EOF(<ф.п.>): Boolean;
Для чтения из текстового файла используется процедуры чтения:
1. READ(<ф.п.>, х1, х2, . . . , хN);
2. READLN (<ф.п.>);
3. READLN (<ф.п.>, х1, х2, . . . , хN);
где х1, х2, . . . , хN – список ввода, содержащий имена переменных разных типов (integer, real, char, string), значения которых процедура считывает из текстового файла, начиная с элемента, на котором установлен текущий указатель. Файловая переменная имеет тип text.
Процедура READLNвыполняет те же действия, что и READ и дополнительно переход к новой строке. Вызов READLNбез параметров приводит к перемещению текущей позиции файла на начало следующей строки. Так можно пропускать строки.
Для записи в текстовый файл используются процедуры:
1. WRITE(<ф.п.>, х1, х2, . . . , хN);
2. WRITELN(<ф.п.>);
3. WRITELN(<ф.п.>, х1, х2, . . . , хN);
где х1, х2, . . . , хN – список вывода, содержащий имена переменных разных типов (integer, real, char, string), значения которых процедура записывает в текстовый файл, начиная с элемента, на котором установлен текущий указатель. Файловая переменная имеет тип text.
Процедура WRITELN выполняет те же действия, что и WRITE и дополнительно вставляет признак конца строки.
Особенность использования текстовых файлов состоит в том, что процедуры чтения и записи разрешают работать со значениями различных типов. Последовательность символов, прочитанная из файла, автоматически преобразуется к значению того типа переменной, которая используется в списке ввода. Например, при выполнении фрагмента программы
var f1: text; a,b,c: real;
…
Readln(f1,a,b,c);
процедура readlnвыполнит чтение из очередной строки файла, связанного с ф.п. f1, последовательности цифр, интерпретируемой как три вещественных числа, значения которых будут присвоены переменным a,b,c.
Следующая стандартная процедура инициирует запись в существующий текстовый файл, при чем указатель файла устанавливается в конец файла:
APPEND (<ф.п.>);
Процедура APPEND (<ф.п.>)применима только в текстовых файлах. Если текстовый файл был открыт с помощью процедуры RESETилиREWRITE, то использование процедуры APPENDприведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.
При завершении работы с файлом используется процедура CLOSE(<ф.п.>).
Функция проверки конца строки SEEKEOLN(<ф.п.>)аналогична EOLN(<ф.п.>),но пропускает пробелы и позиции табуляции перед проверкой конца строки.
Функция проверки конца файла SEEKEOF(<ф.п.>) аналогична EOF (<ф.п.>),но пропускает пробелы и позиции табуляции перед проверкой конца файла.
Пример:
Программа, создающая текстовый файл, содержащий одну строку, которая записывается в виде текстовой константы.
var
f: text;
str: string;
begin
assign(f, 'file01.txt'); - назначение файловой переменной f файла 'file01.txt'
rewrite(f); - создание файла
writeln(f,'Этот текстовый файл содержит 1 строку'); - запись в файл
close(f); - закрытие файла
append(f); - открытие файла и установка указателя в конец
str:= 'В это файл добавим еще строку текста !!!!!';
writeln(f,str); - запись в файл 'file01.txt'
close(f); - закрытие файла 'file01.txt'
reset(f); - открытие файла 'file01.txt'
while not eof(f) do
begin
readln(f,str); чтение из файла 'file01.txt' и вывод на экран
writeln(str);
end;
close(f); - закрытие файла 'file01.txt'
writeln('=================');
readln;
end.
Дата добавления: 2017-11-04; просмотров: 2687;