Обсудим инструкции, связанные с открытием файла для операций ввода/вывода, а также с закрытием файла по завершению работы с ним.
Open – разрешает выполнение операций ввода/вывода при работе с файлом. Синтаксис:
Open Путь For Режим [Access Доступ] [Блокировка] _
As [#]НомерФайла [Lеп=Длина]
Путь – строковое выражение, указывающее имя файла
Режим – устанавливает режим работы с файлом. Допустимые значения: Append, Binary, Input, Output или Random.
Доступ – устанавливает операции, разрешенные с открытым файлом. Допустимые значения: Read, write или Read Write/
Блокировка – устанавливает операции, разрешенные с открытым файлом другим процессам. Допустимые значения:
Shared, Lock Read, Lock Write и Lock Read Write.
НомерФайла — допустимый номер файла. Число в интервале от 1 до 255. Обратите внимание на то, что параметру НомерФайла предшествует символ #. Значение НомерФайла нельзя изменять, пока файл открыт. Но при следующем открытии файла НомерФайла может быть другим числом.
Длина – число, меньшее либо равное 32 767 (байт). Для файлов, открытых в режиме Random, это значение является длиной записи. Для файлов с последовательным доступом это значение является числом буферизуемых символов.
|
|
Close. Про инструкцию open важно также знать, что во время ее работы VBA также резервирует файловый буфер в памяти компьютера для ускорения процесса записи и считывания (прямое записывание информации на диск может существенно замедлить выполнение программы, что особенно заметно при работе с большими файлами). Максимальное число файловых буферов устанавливается в системном файле Config.sys.
Завершает операции ввода/вывода с файлом, открытым с помощью инструкции open. Эта инструкция очищает буфер и указывает операционной системе обновить FAT (таблицу размещения файлов). Важно, чтобы каждый файл по завершении работы с ним был закрыт, иначе это может привести к частичной потере информации. Синтаксис:
Close [СписокНомеровФайлов]
Аргумент СписокНомеровФайлов может представлять один или несколько номеров файлов. При этом используется следующий синтаксис, где НомерФайла представляет любой допустимый номер файла:
[[#]НомерФайла] [, [#]НомерФайла]...
FreeFile – функция возвращает доступный номер, который может использоваться в инструкции Open.
Приведем пример инструкции, открывающей для записи бинарный файл первый из рабочей папки, и затем инструкции, закрывающей этот бинарный файл.
Open "Первый" For Binary Access Write As #1
Close #1