Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможен ли ReDim для многомерных массивов? / 7 сообщений из 7, страница 1 из 1
27.03.2006, 11:05:35
    #33626548
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможен ли ReDim для многомерных массивов?
Если возможен, как правильно надо это кодить?
Хочу использовать такую конструкцию для создания 2-мерного массива. Ругается во 2-ом цикле на строкe ReDim Preserve mas(i, 1). Типа Subscript out of Range
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub temp()

Dim mas(), temp, i

For i =  0  To  3 
    ReDim Preserve mas(i,  1 )
    mas(i,  0 ) = i & "0"
    mas(i,  1 ) = i & "1"
Next

End Sub
...
Рейтинг: 0 / 0
27.03.2006, 11:13:03
    #33626575
Возможен ли ReDim для многомерных массивов?
VB HelpFor example, if your array has only one dimension, you can resize that dimension because it is the last and only dimension. However, if your array has two or more dimensions , you can change the size of only the last dimension and still preserve the contents of the array.
...
Рейтинг: 0 / 0
27.03.2006, 11:17:01
    #33626596
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможен ли ReDim для многомерных массивов?
Облом я так понял
...
Рейтинг: 0 / 0
27.03.2006, 18:05:02
    #33628003
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможен ли ReDim для многомерных массивов?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
   Dim i, j, k, l As Integer
   Dim m() As Long, tt As Integer
   
   Const n =  16 
   
   tt = FreeFile
   Open App.Path & "\a.txt" For Output As #tt
   ReDim m(n -  1 , n -  1 , n -  1 , n -  1 )
   For i =  0  To n -  1 
      For j =  0  To n -  1 
         For k =  0  To n -  1 
            For l =  0  To n -  1 
               m(i, j, k, l) = i * n * n * n + j * n * n + k * n + l
               Print #tt, "m(" & Hex(i) & "," & Hex(j) & _ 
"," & Hex(k) & "," & Hex(l) & ")" & vbTab & "0x" & Mid$(Hex(&H10000 + m(i, j, k, l)),  2 )
            Next l
         Next k
      Next j
   Next i
   Close #tt
...
Рейтинг: 0 / 0
27.03.2006, 19:24:36
    #33628157
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможен ли ReDim для многомерных массивов?
А нельзя до цикла RiDim'ить?
...
Рейтинг: 0 / 0
28.03.2006, 10:02:55
    #33628761
Возможен ли ReDim для многомерных массивов?
ReDim'ить то можно любое измерение, вопрос же был ReDim'ить с использованием ключевого слова Preserve.
...
Рейтинг: 0 / 0
28.03.2006, 10:38:22
    #33628848
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможен ли ReDim для многомерных массивов?
AklinА нельзя до цикла RiDim'ить?
Нет, в том то и дело что нужно динамически изменять размер массива, т.к. заранее его размер неизвестен.

А в моем случае я, кажется, разобрался как поступить. Правда еще не пробовал.
Достаточно поменять местами измерения в массиве. В моем случае нужно из mas(i, 1) сделать mas(1, i). Тогда все должно быть ок. Это я просто повнимательне прочитал фразу
Пользователь2you can change the size of only the last dimension and still preserve the contents of the array
Хотя с английским у меня не очень, но думаю должно помочь.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможен ли ReDim для многомерных массивов? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]