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