Текстовые файлы представляют собой совокупность символов, разделенных на строки, причем в конце каждой строки стоит признак конца строки. Особенностью работы с текстовыми файлами является то, что параметры, значения которых вводятся и выводятся с помощью процедур READ или WRITE, могут быть не только типа String или Char, но и других типов (целых, вещественных - при вводе, целых, вещественных, логических - при выводе).
При работе с текстовыми файлами необходимо, прежде всего, объявить соответствующую файловую переменную:
Var
F:text;
Начало работы с текстовым файлом - стандартное: файловой переменной ставится в соответствие имя файла (процедура Assign), а затем открывается новый текстовый файл (процедура Rewrite) или открывается существующий текстовый файл (процедура Reset).
Далее в таблице представлены процедуры и функции для работы с текстовыми файлами.
Процедуры и функции для работы с текстовыми файлами
Описание
APPEND(F)
Открытие существующего файла.
Открывается существующий файл, с которым связана файловая переменная F и указатель текущего компонента файла перемещается на конец файла.
F- переменная любого файлового типа.
После открытия текстовый файл можно дополнять информацией, начиная с конца строки.
READ(F,<список>)
Чтение из файла.
READLN(F,<список>)
Чтение строки из файла.
SETTEXTBUF(F,BUF[,SIZE])
Назначение буфера ввода- вывода.
Для файла, с которым связана файловая переменная F, назначается буфер ввода- вывода в виде переменной BUF любого типа.
WRITE(F,<список>)
Запись в файл.
WRITELN(F,<список>)
Запись строки в файл.
EOLN(F)
Коней строки файла.
EOF(F)
Конец файла.
Пример программы работы с текстовым файлом
Program Txt_file; {Пример обработки текстового файла}
Type
fil = text;
Var
Fl, Fl_New : fil;
Name, New_Name : string[12] ;
Txt : string;
Ch : char;
procedure Read_Text; {Считывание текста из файла}
begin
{$I-} {Директива компилятору на отключение стандартной проверки операций ввода-вывода}
Repeat
Write('Введите имя файла для считывания текста: ');
Readln(Name); Writeln;
Assign(Fl,Name) ;
Reset (Fl);
if IOresult<>0 then
begin
Writeln('Файл не найден...');
Close(Fl);
end ;Writeln;
Until IOresult=0 ;
{$I+} {Директива компилятору на включение стандартной проверки операций ввода-вывода}
Writeln('Файл ' ,Name, ' : ') ;Writeln;
while not Eof(Fl) do
begin
Readln(Fl, Txt) ;
Writeln(Txt) ;
end;
Close(Fl);Writeln;
Write('Файл считан, нажмите Enter...');Readln;
end ; {конец процедуры Read_Text }
procedure App_Text; {Добавление текста в файл}
begin
Append(Fl); {Открыть файл для присоединения нового текста}
Writeln('Файл ',Name,' открыт для присоединения нового текста ') ;
Writeln('Вводите текст для записи(для окончания нажмите Enter) :');
Writeln;
Repeat
Write (' :>') ;
Readln(txt);
Writeln(fl,txt);
Until txt=' ';
Close(Fl);Writeln;
Writeln('Присоединение нового текста окончено, нажмите Enter...');
Readln;
end ; {конец процедуры App_Text}
procedure Erase_File; {Удаление файла}
begin
Erase(Fl); {Удаление файла}
Writeln('Файл ',Name,' удален с диска, нажмите Enter...');
Readln;
end; {конец процедуры Erase_File}
procedure Rename_File; {Переименование файла}
begin
Write('Введите новое имя файла: ');
Readln (New_Name) ;
Rename(Fl,New_Name); {Переименование файла}
Writeln('Файл',Name,'переименован в ',New_Name,',нажмите Enter...');