Тема 10 – Файлы 9 Файлы
В зависимости от способа объявления можно выделить три вида файлов Паскаля:
типизированные файлы Паскаля(задаются предложением file of..);
текстовые файлы Паскаля(определяются типом text);
нетипизированные файлы Паскаля(определяются типом file).
Следует помнить, что физические файлы на магнитных дисках и переменные файлового типа в программе на Паскале – объекты различные. Переменные файлового типа в Паскале могут соответствовать не только физическим файлам, но и логическим устройствам, связанным с вводом/выводом информации. Например, клавиатуре и экрану соответствуют файлы со стандартными именами Input, Output.
Над значениями файлового типа Паскаля не определены какие-либо операции. Все операции могут производиться лишь с элементами (компонентами) файлов. Естественно, что множество операций над компонентами файла определяется типом компонент.
В Турбо-Паскале описанные выше файлы называются логическими. Основное назначение логического файла - обеспечить программе средства для обмена данными с периферийными устройствами компьютера. В связи с этом вводится понятие физического файла, как совокупности данных во внешней памяти (дискета, жесткий диск, магнитная лента и др.) Кроме того, в качестве физического файла могут использоваться и сами периферийные устройства, например, принтер).
Общие процедуры работы с файлами
Процедура или функция |
Назначение |
Assign (Var f; FileName: String) |
Предназначена для связывания файловой переменной f (формальный файл) с физическим файлом на диске, путь к которому хранится в переменной FileName |
Close (Var f) |
Предназначена для закрытия файла f |
Reset (Var f) |
Открывает файл f для чтения, устанавливает указатель на начало файла |
Rewrite (Var f) |
Открывает файл f для записи, устанавливает указатель на начало файла, стирает предыдущее содержимое файла, если оно было |
Erase (Var f) |
Предназначена для удаления файла f, файл при этом должен быть закрытым |
Rename (Var f; NewName: String) |
Предназначена для переименования файла f, файл при этом должен быть закрытым. В NewName записывается новое имя файла |
EOF (Var f): Boolean |
Функция выдает результат True, если достигнут конец файла f, т.е. при прочтении последней записи |
Текстовые файлы - последовательные файлы
Чтение файла производится только с начала, каждый раз считывается только одна текущая компонента, причем нельзя прочитать текущую компоненту, не прочитав предыдущей. Запись в файл осуществляется только присоединением очередной компоненты к его концу. Число компонент, называемое длиной файла, в определении файлового типа не фиксируется. Эта способность явно отличает понятие файла от понятия массива. Если файл не имеет компонент, то его называют пустым. Для файла имеется специальный признак окончания - конец файла (eof (f)).
Одной из разновидностей последовательных файлов являются текстовые файлы, компонентами которых являются литеры ( стандартный тип CHAR ). Для указания типа файлов в языке ПАСКАЛЬ существует заранее определенный стандартный идентификатор TEXT:
var f1, f2: text;
Текстовые файлы обеспечивают взаимодействие между вычислительными системами и пользователями.
Текстовые файлы – это файлы в которых:
а) информация представлена в текстовом виде посредством символов из набора ASCII;
б) информация может разделяться на строки произвольной длины. Признаком конца строки служат два специальных символа #10 и #13;
в) в конце файла присутствует символ #26;
г) при записи чисел, строк и логических значений они преобразуются в символьный (текстовый вид);
д) при чтении чисел они автоматически преобразуются из текстового в машинное представление.