Динамические двумерные массивы
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Динамические двумерные массивы Expand / Collapse
Автор
Сообщение
15.05.2007 9:37
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 15.05.2007 9:29
Сообщ.: 1, Visits: 1
Помогите с созданием динамических двумерных массивов. С одномерным там усе понятно:

Dim mas() as integer

ReDim mas(i) as integer

и будет счастие, а ка быть, если надо двумерный? Если объявить его также, а потом ReDim mas(i,j) as integer - будет ругаться, нашел в интернете

Dim mas(,) as integer - компилятор ругается

......может кто знает, памажите

Сообщ. #913264
15.05.2007 15:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 26.10.2007 9:10
Сообщ.: 166, Visits: 1 538
Компилятор будет ругаться, если в ReDim указать тип, отличный от указанного в Dim. Лучше вообще не указывай тип при определении размера массива.
Сообщ. #913277
17.05.2007 9:52
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.08.2008 15:27
Сообщ.: 112, Visits: 681
Создаем модуль класса и называем его hash2d,в него засовываем код:

Dim h As New Scripting.Dictionary
Function item(k) As Scripting.Dictionary
 If Not h.Exists(k) Then
  Set h(k) = New Scripting.Dictionary
 End If
 Set item = h(k)
End Function

Создаем тестовый модуль и суем в код:

Sub sdfg()
    Dim x As New hash2d
    For i = 1 To 100
        For j = 1 To 100
            x.item(i)(j) = Rnd * 10
        Next j
    Next i
    For i = 1 To 100
        For j = 1 To 100
            t = t & Format(x.item(i)(j), "0000") & " "
        Next j
        Debug.Print t
        t = ""
    Next i

End Sub

В Immediate будет распечатан массив.

Причем этот двумерный хеш может быть адресован не только числами но и любыми строками.

x.item("Документ1")("<ДатаНачалаДейстчия>")

и к томуже мы можем присвоить нетолько значение, но и ссылку на какой-то объект.

set x.item("ContextMenus")("menu 1") = new MyApiPopup

Разумеется нужно использовать Option explicit, и все объявить соответствено...

Сообщ. #913346
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 1:01