Текстовые файлы

Общие процедуры для работы с файлами

Средства обработки файлов.

Для всех типов файлов минимальной единицей хранения информации в них является байт. Принципы работы с файлами едины, хотя и имеются различия в наборах команд для работы с разными файловыми типами. Для всех без исключения файлов необходимо предварительное связывание их логических обозна­чений (файловых переменных) с физическими файлами.

Файловые переменные, описанные в программе, не могут участвовать в операторах присваивания.

При использовании файловых переменных любого типа в качестве формальных параметров заголовков процедур и функций они всегда должны быть описаны как параметры-переменные (т.е. Varf:...).

Рассмотренные ранее процедуры ввода-вывода данных Write(Ln) и Read(Ln) фактически использовались нами для уст­ройства 'CON'. Однако эти процедуры могут используются и для работы с любыми логическими файлами. Тогда необходимо до­полнить их описания:

Read(f, <список ввода>) ReadLn(f, <список ввода>) Write(f, <список вывода>) WriteLn(f, <список вывода>), где f— файловая переменная. (ReadLn(f, <список ввода>, WriteLn(f, <список вывода>)-выполняются только для текстовых файлов)

Далее приводится таблица стандартных процедур, приме­няемых к файлам любых типов.

Процедура или функция Назначение
Assign(Varf; FileName: String); Связывает файловую переменную/ с именем FileName физического файла
Reset(Varf) Открывает файл с логическим именем/для чтения
ReWrite(Varf) Открывает файл с логическим именем f для записи
Close(Varf) Закрывает канал ввода-вывода файла с логическим именем f
Rename (Var f; NewName: String); Переименовывает физический файл f в NewName (применима лишь к закрытым файлам)
Erase(Varf) Удаляет (если это возможно) физи­ческий файл f с носителя информа­ции (удаляемый файл должен быть закрыт)
EOF (Varf): Boolean; (End Of File) Возвращает True, если достигнут конец файла

Дадим другое определение: текстовые файлы — это файлы, в которых:

1) информация представляется в текстовом виде посредст­вом символов в коде ASCII;

2) порции информации могут разделяться на строки. При­знаком конца строки служит символ #13 (код 13 — CR). Он может быть объединен с символом перевода строки #10 (код 10 — LF);

3) конец файла обозначается явно символом AZ (код 26);

4) при записи чисел, строк и логических значений они пре­образуются в символьный (текстовый) вид;

5) при чтении чисел и строк они автоматически преобразу­ются из текстового представления в машинное.

Если файл можно вывести на экран в текстовом режиме и прочитать его, то это — текст. Клавиатура посылает в компьютер "сплошной" текст-файл. Компьютер посылает на принтер текст-файл, даже если принтер рисует в графическом режиме.

Для текстовых файлов определена специальная процедура Append(Var f: Text). Она применима к уже существующим физи­ческим файлам и открывает их для дозаписи, т.е. файл не стирает­ся, как при вызове ReWrite, а подготавливается к дозаписи эле­мента в конец файла.

Функция EOLn(Var f: Text) возвращает True, если текущая позиция в файле — конец строки или конец файла.