Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по VB. Часть2.doc
Скачиваний:
24
Добавлен:
02.02.2015
Размер:
870.4 Кб
Скачать

9.2. Оператор присоединения With

Часто возникает необходимость обращаться к полям одних и тех же переменных пользовательского типа в небольшом фрагменте кода процедуры. Для того чтобы многократно не повторять имя такой переменной, используется оператор присоединения With, который имеет следующий вид

With <переменная>

[<операторы>]

End With

Внутри оператора With можно обращаться к полям переменной пользовательского типа только с помощью имени, перед которым ставится точка.

Пример использования оператора With:

With udt Мебель

.strНаименование = "Стол"

.udtПроизводитель.strГород = "Харьков"

curСтоимость = .curЦена * .intКоличество

End With

Примечание. Оператор With имеет более широкое назначение. В его заголовке кроме переменных пользовательского типа могут использоваться любые объекты VB для ссылок в теле на семейства, объекты, свойства и методы.

Пример применения оператора With к объекту текстовое поле txtСтоимость.

With txtСтоимость

.Text = "0" 'Начальное значение

.Enabled = True 'Недоступный

.BackColor = vbGreen 'Цвет фона

End With

10. Файлы

10.1. Назначение файлов

Если файл рассматривать как единый информационный объект, то он представляет собой именованную область на диске или другом носителе информации.

Важное значение файлов объясняется тремя причинами:

1) любой процесс может связываться со своим окружением только с помощью файлов. Если бы приложение каждый раз обрабатывало одни и те же данные, то смысла в таком приложении не было бы. Приложения создаются, как правило, для обработки большого количества комплектов данных (реализуется свойство массовостиалгоритма), т.е. при каждом запуске оно работает с новыми данными. Такие данные поступают в приложения с помощью файлов;

2) процессы обычно длятся недолго: приложение загружается в оперативную память и выполняется, а по окончании выполнения одного приложения память поступает в распоряжение другого. Если приложение не изменяет ни одного файла во время своей работы, эффект будет таким же, как если бы оно вовсе не работало (т.е. выполняется свойство алгоритма результативность);

3) файлы могут хранить гораздо больше информации, чем оперативная память компьютера. Понятие файла лежит в основе баз данных.

Однотипные файлы могут обрабатываться одним и тем приложением, например, если известны результаты работы рабочих цехов и эти результаты записаны в разные файлы (Цех1.dat, Цех2.dat и Цех5.dat), то начисление зарплаты для этих цехов может производиться одним и тем же приложением Зарплата. Это приложение при первом запуске обрабатывает файл Цех1.dat, при втором – файл Цех2.dat и т.д.

Для обеспечения такой универсальной работы приложения рассматривают два понятия – файл, который содержит конкретные данные, и канал ввода/вывода, по которому передаются эти данные из внешнего носителя в приложение и наоборот. Для связи приложения с файлом вначале устанавливается определенный канал ввода/вывода, а затем вне зависимости от конкретных данных (например, фамилия рабочего) в приложении описывается процесс обработки отдельных этапов начисления заработной платы для данных, поступающих по этому каналу.

Благодаря наличию каналов одним и тем же приложением можно обрабатывать несколько файлов. И наоборот, один файл можно обрабатывать разными приложениями, в которых указаны разные каналы. Например, информация, хранящаяся в файле Цех1.dat, может обрабатываться приложениями бухгалтерии (для начисления зарплаты), планово-экономического отдела (для определения процента выполнения плана в целом и каждым рабочим), а также отдела кадров (для определения пропусков рабочих дней).

Канал ввода/вывода определяется номером в диапазоне от 1 до 511 и назначается файлу при его открытии.

Если в приложении используется несколько каналов, то для определения номера первого свободного канала можно воспользоваться встроенной функцией FreeFile, обращение к которой имеет вид:

FreeFile [(НомерДиапазона)]

где НомерДиапазона необязательный параметр равный либо 0 (по умолчанию), либо 1. Если НомерДиапазона равен нулю, то функция FreeFile возвращает номер свободного канала из диапазона 1 – 225, а если – один, то из диапазона 256 – 511.

Например, для выбора номера канала из первого диапазона можно воспользоваться оператором:

intСвобКанал=FreeFile()

Номер канала ввода/вывода в литературе еще называется дескриптором файла.