Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

7 08 Глава 19. Инструментальные средства пользователя в среде microsoft office

Текст программы

Комментарий

Debug.Print a If a > 0.99 Then Exit Do

Loop End Sub

Печать случайного числа Блок условия — при его выполнении выход из цикла Конец цикла Конец процедуры

Цикл While-Wend. Данный оператор полностью соответствует структуре Do While-Loop. Отличительной особенностью оператора является невозможность прервать выполнение цикла из тела цикла (Exit Do отсутствует), проверка условия выполняется только в начале цикла.

While <условие> <блок операторов> Wend

Цикл For Each. Оператор относится к категории операторов объектного типа, т.е. применяется к массивам (элементам) и наборам объектов. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически. Упорядочение элементов набора — произвольное.

For Each <элемент> In <набор>

<блок операторов>

Exit For

<блок операторов>

где <элемент> представляет собой переменную типа Variant, <набор> — определенный набор объектов. Для прерывания цикла используется оператор Exit For.

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

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

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

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

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

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

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

19.2. СОЗДАНИЕ ПРИЛОЖЕНИИ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS

709

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

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

где <путь_имя_файла> — <режимы> —

Append

Binary

Input

Output

Random

<направление_потока> —

Read Write

Read Write <блокировка> —

Shared Lock Read Lock Write Lock Read Write

номер —

<длина записи> —

строка символов, задающая местоположение и имя дискового файла; режимы работы с файлом:

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

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

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

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

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

задает тип потока данных по отношению к файлу:

только чтение только запись чтение и запись одновременно;

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

распределенный доступ блокировка файла для чтения блокировка с >айла для записи блокировка файла для чтения и записи;

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

указывается для записей фиксированной длины, максимум — 32 767 байт. Оптимальная длина записи кратна размеру дискового сектора (512 байт).

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

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

Текст программы

Комментарий

Open "FILE" For Input As #1

Открытие последовательного файла

для чтения

Open "FILE" For Binary Access

Открытие двоичного файла только

Write As #1

для записи

Type Record Define userdefmed 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

чтение файла другим приложениям

запрещено

710