|
|
|
| Появилось желание(потребность) совместить
удобство коллекции в получении элемента по строковому ключу и
возможность хранения в массиве самописных структур.
Вот что получилось (вкратце):
Public Type tTriad
First As Byte
Second As Byte
Third As Byte
End Type
Public Type tQuadTriad
Triad(3) As tTriad
End Type
Private ArrQuadTriad() As tQuadTriad
Private Col As New Collection
Public Function FillCol()
Dim i As Integer, j As Integer, z As Integer
Dim strKey As String
Set Col = Nothing
'...
z = 15 'реально значения разные
ReDim ArrQuadTriad(z)
'...
For i = 0 To z
strKey = "msdsad" & i 'реально другие значения, разные для каждого i
For j = 0 To 3
With ArrQuadTriad(i).Triad(j)
.First = 1 'реально другие значения, разные
.Second = 2 'реально другие значения, разные
.Third = 3 'реально другие значения, разные
End With
Next j
Col.Add i, strKey
Next i
End Function
Public Function GetQuadTriad(strKey As String) As tQuadTriad
GetQuadTriad = ArrQuadTriad(Col.Item(strKey))
End Function
|
Теперь, после заполнения коллекции, по строковому ключику могу иметь ссылки на свои структуры:
'?GetQuadTriad("msdsad1").Triad(0).First
Вопрос:
Я тут часом не через "дымоход" пытаюсь влезть?
Спасибо. | |
|
| |
|
|
|
|
| Ваша крнструкция вполне имеет право на жизнь, хотя во многих случаях отвязанный ADODB.Recordset может стать лучшей альтернативой. | |
|
| |
|
|
|
| Спасибо, Анатолий.
Альтернативу с ADODB.Recordset нужно будет покурить. | |
|
| |