- •Логический файл
- •Varf: Text; { Объявляем файловую переменную/}
- •Физические файлы в ms dos
- •Понятие буфера ввода-вывода
- •Файловые типы Турбо Паскаля
- •Средства обработки файлов.
- •Общие процедуры для работы с файлами
- •Текстовые файлы
- •Бестиповые файлы и операции ввода-вывода
- •Типизированные файлы и операции ввода-вывода
- •Последовательный и прямой доступ к элементам файла
Средства обработки файлов.
Для всех типов файлов минимальной единицей хранения информации в них является байт. Принципы работы с файлами едины, хотя и имеются различия в наборах команд для работы с разными файловыми типами. Для всех без исключения файлов необходимо предварительное связывание их логических обозначений (файловых переменных) с физическими файлами.
Файловые переменные, описанные в программе, не могут участвовать в операторах присваивания.
При использовании файловых переменных любого типа в качестве формальных параметров заголовков процедур и функций они всегда должны быть описаны как параметры-переменные (т.е. 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, если текущая позиция в файле — конец строки или конец файла.
