- •1. Специальные конструкции языка 6
- •Введение
- •Специальные конструкции языка
- •Пользовательские типы данных
- •Типизированные файлы
- •Текстовые файлы
- •Нетипизированные файлы
- •Обработка ошибок
- •Оператор On Error
- •Объект Err
- •Обработка событий мыши и клавиатуры
- •Обработка событий мыши
- •Обработка событий клавиатуры
- •1.5. Элемент управления MaskedEdit
- •Графика
- •Элементы управления для графических изображений
- •Генерация графических изображений (примитивов)
- •Графические методы
- •Координаты элементов управления.
- •Примеры использования графических методов
- •Задания для самостоятельной работы
- •Работа с таймером
- •Анимация графических изображений
- •Основные свойства и методы
- •Примеры создания эффектов анимации
- •Варианты заданий по анимации для самостоятельной работы
- •Стандартные диалоговые окна
- •Работа с базами данных в vb
- •Элемент управления Data
- •Объект Recordset
- •Элемент управления msFlexGrid
- •Элемент управления ms Data Bound Grid
- •Использование языка sql в vb для работы с базами данных
- •Литература
Специальные конструкции языка
Пользовательские типы данных
Если при решении конкретной задачи возникает необходимость логически связать несколько переменных различных типов, то их следует объединять в записи. По другому записи называют пользовательским типом данных. Каждую переменную, входящую в запись, называют полем.
Для описания пользовательского типа данных используется оператор Type, который имеет следующий формат:
Type название
список_полей
End Type
Структура Type ... End Type должна быть расположена в разделе Declarations соответствующего модуля с использованием одного из служебных слов, описывающих тип уровня модуля (Private или Public).
Рассмотрим пример. Пусть необходимо обработать информацию о результатах сессии, в которой представлены оценки экзаменов по трем дисциплинам. В этом случае необходимы следующие поля:
1. Фамилия, имя, отчество студента.
2. Номер зачетки.
3. Оценка по физике.
4. Оценка по математике.
5. Оценка по программированию.
Пусть названием создаваемого типа является Session. Тогда описание полей записи Session будет выглядеть следующим образом:
Private Type Session
Name As String
Number As Long
Physics As Byte
Math As Byte
Progr As Byte
End Type
Для получения доступа к созданной структуре необходимо одной или нескольким переменным в программе определить тип Session
Например:
Dim FirstSession As Session
При работе с переменными пользовательского типа для выполнения различных операций с полями необходимо вначале указывать имя обрабатываемой переменной, затем точку и название поля. То есть доступ к полям записей осуществляется в таком же формате, как при работе со свойствами объектов.
Например:
FirstSession.Math=5
Можно также присваивать значение одной переменной пользовательского типа другой переменной такого же типа, например:
Dim Session1 As Session
Dim Session2 As Session
.
.
.
Session2=Session1
Если типы не будут совпадать, то компилятор выдаст сообщение об ошибке.
В качестве полей записи могут использоваться массивы – как статические, так и динамические, при этом работа с их элементами выполняется так же, как и обработка обычных массивов. Например, в рассматриваемом примере для типа Session можно вместо трех полей для оценок описать одно поле в виде массива Marks, состоящего из трех элементов:
Private Type Session
Name As String
Number As Long
Marks (1 to 3) As Byte
End Type
Dim Session1 As Session
Session1.Marks(1)=4
Session1.Marks(2)=5
Session1.Marks(3)=3
По аналогии осуществляется обработка массивов записей, которые могут содержать поля в виде массивов, например:
Dim arrSession(5) As Session
arrSession(1).Marks(1)=4
Переменные пользовательского типа можно передавать в процедуры и функции в качестве параметров, но при этом необходимо иметь в виду, что записи могут использоваться только как параметры-переменные [4]. Например, в приведенном ниже коде при вызове процедуры WriteSession переменная Session1 передается как параметр-переменная. Необходимо заметить, что в теле процедуры WriteSession обращение к полям записи Session1 осуществляется с использованием конструкции With ... End With.
Private Sub Form_Load()
Dim Session1 As Session
Call WriteSession (Session1)
End Sub
Private Sub WriteSession(a As Session)
With a
.Name = "Иванов Иван Иванович"
.Number = 12345
.Marks(1)=4
.Marks(2)=5
.Marks(3)=3
End With
End Sub
Файлы
Файл – это место на диске, куда записывается определенная информация. Чтобы отличать файлы друг от друга, им присваивают имена. При работе с файлами возможны следующие операции: считывание информации в переменные программы и занесение данных из переменных в файлы.
Существуют несколько видов файлов, определяющих формат хранения данных и особенности программного доступа к ним:
типизированные (двоичные файлы);
текстовые;
нетипизированные (файлы записей).
Рассмотрим приведенные типы файлов и их отличительные особенности.