logo
Конспект лекций по КИТ

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

Обсудим инструкции, связанные с открытием файла для операций вво­да/вывода, а также с закрытием файла по завершению работы с ним.

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