Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lukas
Появилось желание(потребность) совместить
удобство коллекции в получении элемента по строковому ключу и
возможность хранения в массиве самописных структур.
Вот что получилось (вкратце):

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

Вопрос:
Я тут часом не через "дымоход" пытаюсь влезть?
Спасибо.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.