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

Основные понятия

РАБОТА С ФАЙЛАМИ

VBA работает с хранимыми на диске файлами двух типов: последовательного и произвольного доступа.

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

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

Открывать можно как существующие на диске, так и новые файлы. Каждый файл идентифицируется в программе определенным номером, который присваивается ему в момент открытия. Свободный номер файла можно определить с помощью встроенной функции FileFree, которая возвращает очередной свободный номер для открытия файла (номер изменяется в диапазоне 1 - 511).

Файл открывают в определенном режиме работы:

Open <путь_имя__файла> [For <режимы>] [Access <направление_потока>] [<блокировка>] As [#]номер [Len=<длина_записи>]

где <путь имя_файла> - строка символов, задающая местоположение и имя дискового файла;

<режимы> - режимы работы с файлом:

Append - добавление записей

Binary - двоичный файл

Input - файл для чтения

Output - файл для записи

Random - файл произвольного доступа;

<направление_потока> - задает тип потока данных по отношению к файлу:

Read - только чтение

Write - только запись

Read Write - чтение и запись одновременно;

<блокировка> - определяет возможность работы с файлом других приложений:

Shared - распределенный доступ

Lock Read - блокировка файла для чтения

Lock Write - блокировка файла для записи

Lock Read Write - блокировка файла для чтения и записи;

номер - условный идентификатор файла;

<длина_записи> - указывается для записей фиксированной длины, максимум - 32767 байт. Оптимальная длина записи кратна размеру дискового сектора (512 байт).

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

Пример 19.27. Открытие файлов

Текст программы Комментарий
Open "FILE" For Input As #1 Открытие последовательного файла для чтения
Open "FILE" For Binary Access Write As #1 Открытие двоичного файла только для записи
Type Record Define userdefined type ID As Integer Name As String * 20 End Type Dim MyRecord As Record Объявление пользовательского типа данных
Open "FILE" For Random As #1 Len = Len (MyRecord) Открытие файла произвольного доступа. Длина записи файла определяется встроенной функцией Len
Open 'FILE" For Output Shared As #1 Открытие последовательного файла с распределенным доступом (любые приложения могут читать и писать в файл)
Open "FILE" For Binary Access Read Lock Read As #1 Открытие двоичного файла для чтения, чтение файла другим приложениям запрещено