Текстовые файлы
Общие процедуры для работы с файлами
Средства обработки файлов.
Для всех типов файлов минимальной единицей хранения информации в них является байт. Принципы работы с файлами едины, хотя и имеются различия в наборах команд для работы с разными файловыми типами. Для всех без исключения файлов необходимо предварительное связывание их логических обозначений (файловых переменных) с физическими файлами.
Файловые переменные, описанные в программе, не могут участвовать в операторах присваивания.
При использовании файловых переменных любого типа в качестве формальных параметров заголовков процедур и функций они всегда должны быть описаны как параметры-переменные (т.е. 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, если текущая позиция в файле — конец строки или конец файла.