Файлы. Работа с файлами.
ПЛАН ЛЕКЦИИ.
Понятие файла. Свойство Ф. Виды файлов.
Описание файлов. Процедуры и функции для работы со всеми ф.
Процедуры и функции для работы с текстовыми файлами.
Процедуры и функции для работы с типизированными ф.
Процедуры и функции для работы с файлами без типа.
6. * Примеры задач на использование п и ф.
Понятие файла. Виды файлов.
ФАЙЛ – поименованная область на диске или на другом машинном носителе либо логическое устройство – потенциальный источник или приёмник информации.
СВОЙСТВА Ф:
1. Наличие имени => возможность программе работать с несколькими Ф
2. В Ф. содержатся компоненты одного типа (любого кроме файлового).
3. Длина создаваемого Ф не оговаривается при объявлении и ограничивается только ёмкостью устройства внешней памяти.
При решении задач возникает необходимость использования файлового типа для ввода-вывода информации.
Файловый тип – представляет собой последовательность однотипных компонентов, расположенных на внешнем носителе.
|
|
Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры ASSING. Этим устройством может быть файл на магнитном диске или ленте, а также устройства вычислительного комплекса (клавиатура, экран дисплея, принтер и т.д.).
Затем файл должен быть открыт для чтения и/или записи.
После этого можно осуществлять организацию ввода-вывода.
В Паскале 7.0 имеется три вида файлов, работа с которыми отличается друг от друга:
· Текстовые
· Типизированные
· Файлы без типа
Обычно все Ф считаются файлами последовательного доступа.
НО для типизированных файлов и файлов без типа с помощью процедуры SEEK можно установить режим произвольного доступа. При этом нумерация компонентов файла начинается с нуля.
После работы с файлом, он должен быть закрыт процедурой CLOSE.
В Паскале нет средств контроля вида ранее создаваемых файлов. => при объявлении ранее существующих файлов НУЖНО следить за соответствием вида объявления характеру файла.
ОПИСАНИЕ файла.
Процедуры и функции для работы со всеми файлами.
В Паскале 7.0 имеется три вида файлов, работа с которыми отличается друг от друга.
В разделе type описываем тип:
-типизированные
|
|
|
ПР: type product=record
Name:string;
Code:word;
End;
Text80=file of string[80];
Var f1:file of char;
f2:text;{Teкстовый Ф}
f3:file;{Нетипизированный Ф}
f4:text80;
f5:file of product;
…
РАССМОТРИМ СТАНДАРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ВСЕХ ФАЙЛОВ.
ДЛЯ ВСЕХ ФАЙЛОВ.
ASSING(f,name) – связь файловой переменной f с внешним файлом name(тип string, char или совместимый). Если name пусто, то осуществляется связь со стандартным файлом вв\выв (как правило консолью).
|
|
CHDIR(path) – изменение текущей директории.
GETDIR(n,s) – получение текущего каталога – накопителя, который записывается в переменную s и номер которого указывается параметром n(0 – текущ. накопитель, 1 – накопитель А, 2 – накопитель В, и т.д.).
MKDIR(path) – создание каталога.
RMDIR(path) – удаление пустого каталога.
ERASE(f) – уничтожение внешнего файла.
CLOSE(f) – закрытие открытого файла.
RENAME(f,new) – переименование внешнего файла
RESET(f) – открытие существующего файла, с которым связана файловая переменная f. Указатель текущего компонента Ф настраивается на начало Ф.
RESET(f,size) – для файлов без типа задаётся размер пересылаемого элемента в байтах(целое число, по умолчанию 128).
REWRITE(f) – открывается новый пустой Ф и ему присваивается имя, заданное процедурой ASSING. Если файл с таким именем уже существует, то он уничтожается.
REWRITE(f,size) – для файлов без типа.
EOF(f) – конец файла.
IORESULT – результат последней операции вв\выв. Возвращает 0 если эта операция завершилась успешно и др. число в противном случае.