powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможен ли ReDim для многомерных массивов?
7 сообщений из 7, страница 1 из 1
Возможен ли ReDim для многомерных массивов?
    #33626548
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если возможен, как правильно надо это кодить?
Хочу использовать такую конструкцию для создания 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
Возможен ли ReDim для многомерных массивов?
    #33626575
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
Возможен ли ReDim для многомерных массивов?
    #33626596
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Облом я так понял
...
Рейтинг: 0 / 0
Возможен ли ReDim для многомерных массивов?
    #33628003
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Возможен ли ReDim для многомерных массивов?
    #33628157
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя до цикла RiDim'ить?
...
Рейтинг: 0 / 0
Возможен ли ReDim для многомерных массивов?
    #33628761
ReDim'ить то можно любое измерение, вопрос же был ReDim'ить с использованием ключевого слова Preserve.
...
Рейтинг: 0 / 0
Возможен ли ReDim для многомерных массивов?
    #33628848
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Возможен ли ReDim для многомерных массивов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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