![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В том случае, когда несколько переменных различных типов должны быть логически связаны между собой, их следует объединить в запись, которую еще называют пользовательским типом данных. При этом каждая переменная, являющаяся составной частью записи, носит название поля. Например, если необходимо обрабатывать в программе информацию о результатах сессии в институте, в которой оценки ставились по трем предметам: физике, математике и программированию, то в этом случае понадобятся такие поля:
1. Фамилия, имя и отчество студента.
2. Номер зачетки.
3. Оценка по физике.
4. Оценка по математике.
5. Оценка по программированию.
Для описания пользовательского типа данных используется оператор Type, который имеет следующий формат:
Type название Список полей
End Type
Следует отметить, что структура Type... End Type обязательно должна быть расположена в разделе Declarations соответс-
твующего модуля с использованием одного из служебных слов, описывающих тип уровня модуля (Private или Public).
Пусть в рассматриваемом примере название создаваемого типа будет 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
Другими словами, доступ к полям записей осуществляется в таком же формате, как и работа со свойствами объектов. При этом для заполнения полей записи, особенно в случае большого их количества, можно использовать конструкцию With...End With (аналогично заполнению свойств объектов). Формат этой конструкции следующий:
With запись
.поле1
.поле2
.noлeN
End With
Можно также присваивать значение одной переменной пользовательского типа другой переменной такого же типа, например:
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 Session 1 As Session Session l.Marks(l)= 4 Sessioni.Marks(2) = 5 Sessioni.Marks(3) = 3
Аналогичным образом осуществляется объявление и обработка массивов записей, которые также могут содержать поля в виде массивов, например:
Dim arrSession(5) As Session
arrSession(l).Marks(1) = 4
Переменные пользовательского типа можно передавать в процедуры и функции в качестве параметров, но при этом необходимо иметь в виду, что записи могут использоваться только как параметры—переменные. Например, при выполнении приведенного ниже кода осуществляется занесение данных в поля записи Session1 с использованием конструкции With... End With.
Private Sub CommandButton1_Click ()
Dim Sessioni As Session
Call WriteSession(Sessioni)
End Sub
Private Sub WriteSession(a As Session)
With a
.Name = "Иванов Иван Иванович"
.Number = 123456
.Marks(1) = 4
.Marks(2) = 5
.Marks(3) = 3
End With
End Sub
Дата публикования: 2015-01-23; Прочитано: 171 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!