Оператор присоединения 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

Файлы

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

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

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

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()

 

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

Операции с файлами

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

Направление передачи данных (чтение или запись) определяется относительно оперативной памяти: чтение – это передача данных из файла в оперативную память, а запись, наоборот, – из оперативной памяти в файл.

При открытии файла указательфайла устанавливается на начало первой записи. При чтении записи данные копируются в оперативную память, указатель файла перемещается на начало следующей записи. При записывании в файл данные из оперативной памяти копируются в файл в поле записи, в начале которой находится указатель файла.

В отличие от массива, в котором количество элементов задается заранее, в файле количество записей произвольное. Оно заранее не задается и ограничивается только размерами диска. В конце файла (после последней записи) операционная система помещает маркер конца файла. Новые записи добавляются в файл после последней записи, при этом маркер конца файла отодвигается дальше. Попытка прочитать запись после конца файла приводит к ошибке.

Для определения конца файла используется функция EOF(n), где n – номер канала ввода/вывода. С помощью этой функции можно определить достигнут ли конец файла. Если “Да”, то значением функции является True, в противном случае – False. Название функции происходит от сокращения английских слов End Of File (конец файла).

Режимы доступа

Передача данных может производится в одном из трех режимов:

· Последовательно (Sequential);

· Произвольно (Random);

· Двоичными данными (Binary).

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

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

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

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

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

 

 



Дата добавления: 2020-10-14; просмотров: 320;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.