Работа с текстовыми файлами
Стандартные процедуры и функции для работы с файлами.
Пример.
Type
UnTyp = file;
Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т. д.). Их можно использовать лишь для выполнения операций с файлами (чтения, записи, удаления файла и т. д.). Кроме того, через файловую переменную можно получить информацию о конкретном файле (тип, параметры, имя файла и т. д.).
Для организации работы с файлом нужно выполнить следующие действия:
- связать файловую переменную с файлом на диске;
- открыть файл;
- выполнить операции с файлом (например, чтение или запись);
- закрыть файл.
Процедура ASSIGN(<ф.п.>,<имя файла на диске>) – Связывает файловую переменную (ф.п.) с конкретным файлом на диске (имя файла на диске).
Процедура REWRITE (<ф.п.>) – открывает файл для записи и устанавливает указатель на начало файла. При открытии файла в режиме записи вся содержащаяся в нем информация уничтожается, причем если файла с указанным именем не существует, то он создается.
Процедура RESET (<ф.п.>) – открывает существующий файл для чтения и устанавливает указатель на начало файла, при этом информация остается неизменной. Файл должен существовать, иначе операция открытия завершается с ошибкой.
Процедура APPEND(<ф.п.>) – открывает существующий файл для добавления и устанавливает указатель на конец файла. Используется для работы с текстовыми файлами.
Процедура READ (<ф.п.>,<список_ввода>) – Производит чтение информации из файла.
Процедура WRITE (<ф.п.>,<список_вывода>) – Записывает информацию в файл.
Процедура READLN(<ф.п.>,<перемен.>) – Производит чтение строки из файла, перемещая указатель на следующую строку. Используется для работы с текстовыми файлами.
Процедура WRITELN(<ф.п.>,<перемен.>) – Записывает строку в файл. Используется для работы с текстовыми файлами.
Процедура CLOSE(<ф.п.>) – Закрывает указанный файл.
Функция EOF(<ф.п.>) – Возвращает значение True, если достигнут конец файла, иначе – False.
Функция EOLN(<ф.п.>) – Возвращает значение True, если достигнут конец строки файла, иначе – False.
Пример:
Assign (F, ’C:\f1.txt’);
Rewrite (F);
Close (F);
Ключи компилятора {$I+} и {$I-} используются для проверки результатов ввода-вывода. Если используется ключ {$I+}, то при возникновении ошибки ввода-вывода программа прекращает работу, данный ключ используется по умолчанию. Если используется ключ {$I-}, то при возникновении ошибки ввода-вывода программа не прекращает работу, а код ошибки можно получить с помощью функции IOResult.
Функция IOResult принимает значение 0, если последняя операция ввода-вывода завершилась успешно, и другое значение – в противном случае. Одновременно значение системной переменной, содержащей код ошибки, сбрасывается в 0. Функцию можно использовать только при наличии ключа компилятора {$I-}.
Пример:
program f_pr;
uses crt;
var
f_in, f_out:text;
r, s, l:real;
begin
clrscr;
{$I-}
assign(f_in,'in_1.txt');
reset(f_in);
{$I+}
if IOResult <> 0
then
begin
writeln('file not found');
readkey;
exit
end;
read(f_in,r);
close(f_in);
s:=pi*r*r;
l:=2*pi*r;
assign(f_out,'out_1.txt');
rewrite(f_out);
write(f_out,s,l);
close(f_out);
end.