Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №13.doc
Скачиваний:
8
Добавлен:
14.09.2019
Размер:
236.03 Кб
Скачать

Открытие файлов

Как было указано выше, работа с каждым из типов файлов имеет свои особенности. Однако есть два действия, общие для всех типов файлов — их открытие и закрытие.

Понятно, что перед тем как записать данные в файл или прочитать данные из файла, необходимо сначала открыть этот файл. Открытие файла выполняется оператором open:

Open имя_файла For режим_доступа [access тип_доступа] [lock] As [#]номер_файла [Len=длина]

где:

  • имя_файла — полное имя файла;

  • режим_доступа — режим доступа к файлу. Может принимать следующие значения: Append, Binary, Input, Output или Random;

  • access — тип доступа к файлу. Определяет характер действий с файлом — чтение или запись данных. Может принимать значения: Read (Чтение), Write (Запись) или Read/Write (Чтение/Запись);

  • lock — тип разрешения доступа к файлу другим процессам. Определяет возможность одновременной работы с файлом нескольких приложений или нескольких пользователей. Может принимать значения: Shared (Общий), Lock Read (Блокировка чтения), Lock Write (Блокировка записи) или Lock Read Write (Блокировка чтения и записи);

  • номер_файла — целочисленное выражение, задающее идентификатор файла (дескриптор). Может иметь значение от 1 до 511 включительно;

  • длина — число, определяющее размер буфера данных для записи/чтения в файлах прямого доступа. Для файлов произвольного доступа это число задает длину одной записи файла. Может иметь значение до 32,767 (байтов).

При работе оператора Open создается специальный счетчик номеров (идентификаторов) открытых файлов (в операторе это параметр номер_файла) для однозначного определения файла, с которым программа работает в текущий момент.

Если указанный в операторе Open файл не найден по заданному пути или не существует, он будет создан этим оператором для режимов доступа Append, Binary, Output или Random. Для режима доступа Input новый файл не создается.

Важной особенностью режимов доступа является возможность многократного открытия файла для режимов Binary, Input и Random, то есть файл можно открыть несколько раз с разными номерами. Но для режимов доступа Output и Append, используемых для записи данных, это недопустимо.

При использовании оператора Open необходимо, чтобы режим доступа соответствовал типу открываемого файла.

Если номер открываемого файла специально не контролируется и не задается программой, его можно узнать с помощью функции FreeFile, возвращающей последний свободный номер открываемого файла.

 

Закрытие файлов

Закрытие файлов выполняется очень просто. Для этого необходимо использовать оператор Close, имеющий следующий синтаксис:

Close [номер_файла1, номер_файла2, …]

где номер_файла1, номер_файла2, … — список закрываемых файлов, представленных номерами файлов. При этом номер файла аналогичен номеру файла в функции Open.

Если список файлов не указан, оператор Close закрывает все открытые файлы.

Работа с файлами последовательного доступа

Файлы последовательного доступа — это, как правило, текстовые файлы, то есть последовательности ASCII-символов, организованные в строки.

При открытии файлов последовательного доступа возможны три режима доступа:

  • Input — открыт для последовательного чтения данных;

  • Output — открыт для последовательной записи данных, при этом информация записывается всегда с начала файла (предыдущая затирается, если в файле уже что-то записано);

  • Append — открыт для добавления данных к уже имеющимся в файле.

Рис. 1. Пример файла последовательного доступа

Чтение данных

Чтение данных из файла последовательного доступа выполняется с помощью функции Input и операторов Input # и Line Input #. Рассмотрим эти функции и операторы.

Функция Input имеет следующий синтаксис:

Input(количество_символов, #номер_файла)

где:

  • количество_символов — целое число, которое задает количество считываемых из файла символов;

  • номер_файла — номер файла, аналогичный номеру файла в операторе Open.

Функция Input считывает из файла заданное количество символов и обычно используется для чтения данных, записанных в файл оператором Print #.

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

Если в программе требуется прочитать данные из файла, в котором информация в строках имеет структуру с разделителями (в качестве разделителей используются запятые), необходимо применить оператор Input #: