- •«Обработка файлов средствами языка Turbo Pascal»
- •Лабораторная работа № 7 Обработка файлов средствами языка Turbo Pascal
- •Порядок выполнения работы
- •1. Получить вариант задания.
- •2. Изучить процедуры и функции, используемые для работы с файлами, и необходимые для выполнения данной лабораторной работы.
- •3. Разработать алгоритм подготовки и обработки данных на основе заданных операций.
- •Варианты заданий
- •Описание входных и выходных данных
- •С а) хема программы
- •Текст программы
- •Примеры работы программы
- •Контрольные вопросы
- •3. Каково назначение переменных файлового типа? Как могут быть определены такие переменные в Pascal-программе?
- •4. Каков состав и каково назначение установочных и завершающих операций с файлами? Какие параметры используются при обращении к соответствующим процедурам?
- •5. При помощи каких процедур реализуются операции ввода-вывода (чтения из файла и записи в файл)? Каким образом происходит выполнение этих процедур?
- •6. Каково назначение операций перемещения по файлу, определения параметров файла?
- •7. Как организовать обработку ошибок при работе с файлами?
- •8. Что такое «текстовый файл»? Какие процедуры используются для открытия текстовых файлов, для чтения из файла, записи в файл?
Примеры работы программы
Рисунок 1 – Пример работы программы LAB7 (А)
Рисунок 2 – Пример работы программы LAB7 (Б)
Рисунок 3 – Пример работы программы LAB7 (А)
Рисунок 4 – Пример работы программы LAB7 (А)
Рисунок 5 – Пример работы программы LAB7 (А)
Контрольные вопросы
1. Что такое «файл»?
Файл – поименованная область памяти на внешнем запоминающем устройстве, предназначенная для хранения данных.
2. Что такое «указатель текущей записи»? Это скрытая переменная (то есть неявно описанная вместе с файловой переменной), которая обозначает («указывает») на некоторый конкретный элемент файла.
3. Каково назначение переменных файлового типа? Как могут быть определены такие переменные в Pascal-программе?
Для работы с файлами в программе должны быть определены переменные файловых типов, которые считаются представителями файлов в Pascal-программе.
Переменные файлового типа определяются по следующему правилу: <Имя переменной> : file of <базовый тип>; где «базовый тип» – любой допустимый в Turbo Pascal тип, кроме файлового типа.
4. Каков состав и каково назначение установочных и завершающих операций с файлами? Какие параметры используются при обращении к соответствующим процедурам?
В эту группу входят четыре операции, реализованные в виде стандартных процедур со следующими именами: Assign, Reset, Rewrite, Flush, Close.
Процедура Assign предназначена для установления связи между конкретным физическим файлом на магнитном носителе и переменной файлового типа, которая будет являться представителем этого файла в программе.
Правило обращения к процедуре Assign:
Assign (F, S);
F – имя файловой переменной,
S – строковое выражение, образующее имя файла по правилам, принятым в операционной системе MS-DOS (может включать в себя обозначение дисковода, цепочку каталогов и имя файла).
Процедура Reset(F) предназначена для открытия файлов для чтения. При этом файловая переменная F должна быть уже связана с конкретным дисковым файлом с помощью процедуры Assign.
Под открытием в данном случае понимается поиск файла на внешнем носителе, образование специальных системных буферов для обменов с ним и установка текущего указателя файла на его начало (то есть на нулевой элемент).
Процедура Reset(F) предполагает, что открываемый дисковый файл уже существует, в противном случае возникает ошибка.
Процедура Rewrite(F) предназначена для открытия файлов для записи. При этом файловая переменная F должна быть уже связана с конкретным дисковым файлом с помощью процедуры Assign.
Процедура Rewrite допускает, что открываемый файл может еще не существовать; в этом случае она создает заданный файл. Если же файл существует, то Rewrite очищает его.
Процедура Flush(F) используется для завершения обменов с файлом без его закрытия. Обмены с файлами всегда реализуются через некоторый буфер в оперативной памяти, поэтому в процессе записи в файл последние записываемые элементы могут еще находиться («застрять») в буфере. Процедура Flush вызывает принудительный сброс этих элементов в файл.
Процедура Close(F) завершает действия с файлом. При этом ликвидируются внутренние буферы, образованные при открытии файла, оставшиеся в буфере данные сохраняются в файле.