Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика - Семестр 2.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
516.1 Кб
Скачать

Лекция 13. Работа с файлами. Обработка ошибок в Паскаль.

13.1 Файловые типы

В языке Паскаль под файлом понимается область памяти на внешнем запоминающем устройстве, способная хранить некоторую совокупность информации. В эту область внешней памяти как поместить определенные данные, так и извлечь из нее. Для этого используются переменные файлового типа, который предполагает интерпретацию файла как потенциально бесконечного списка значений одного и того же базового типа.

Var

F: file of integer;

С каждой переменной файлового типа связано понятие текущего указателя файла. Текущий указатель можно понимать как скрытую переменную (то есть неявно описанную с файловой переменной), которая обозначает некоторый конкретный элемент файла.

Рисунок 13.1 – Структура файла

Начальный элемент файла - нулевой! Базовый тип может быть любым за исключением файлового и комбинированного, с одним из полей - файлом.

Операции с файлами можно разбить на четыре основные группы:

  1. установочные и завершающие;

  2. ввод - вывод;

  3. перемещение по файлу;

  4. специальные операции.

В первую группу входят четыре операции, реализованные в виде стандартных процедур:

Assign, reset, rewrite, flush, close,..

  • Assign - предназначенная для установления связи между конкретным физическим файлом на магнитном носителе и переменной файлового типа. Эта переменная имеет два параметра. Первый параметр - имя файловой переменной, и второй параметр - строковое выражение, образующее литеральное имя файла.

Имя файла строится по правилам, принятым в OS MS DOS.

Assign (f, 'd:/users/is -200/myfile.dta')

Второй параметр процедуры может быть строкой, содержащей условное обозначение 'псевдофайлов' MS DOS, т. е. Связанных с конкретным устройством.

CON - вывод на экран или ввод с клавиатуры; LPT1, LPT2, LPT3 - вывод на печатающие устройства; PRN - синоним LPT1; COM1, COM2 - последовательные коммуникационные карты; AUX - синоним COM1; NUL - фиктивное устройство.

  • Reset, Rewrite. Эти процедуры имеют один и тот же параметр - файловую переменную и предназначены для открытия файла. (файловая переменная должна быть уже связана с конкретным дисковым файлом). Под открытием понимается поиск файла на внешнем носителе, образование специальных системных буферов для обмена с ними и установка текущего указателя на его начало.

Разница между этими двумя процедурами заключается в начальных действиях над файлами. Rest предполагает, что открываемый дисковый файл уже существует, в противном случае возникает ошибка. Rewrite допускает, что открываемый файл может еще не существовать. В этом случае процедура создает заданный файл! Если же файл существует, то процедура считывает его.

  • Flush (параметр - файловая переменная) используется для завершения обменов с файлом без его закрытия.

  • Close завершает действия с файлом, который указывается в качестве ее единственного параметра. При этом ликвидируются внутренние буфера, образованные при открытии. После этого файловую переменную можно связать посредством Assign с каким либо другим дисковым файлом.