Открытие файла
Основные понятия
РАБОТА С ФАЙЛАМИ
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 | Открытие двоичного файла для чтения, чтение файла другим приложениям запрещено |