Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Организация двумерного динамического массива Добавлено: 28.04.07 11:27  

Автор вопроса:  Сергей
Здравствуйте!
У меня проблема следующего рода: как создавать динамические массивы я знаю, правда с ограничением по размерности (не больше 1).
Вот и вопрос: как создать двумерный динамический массив, если при следующих строках:

private massive() as integer
   
   ...
   цикл
     n=n+1
     redim preserve massive(1 to n, 1 to 3) <-- ошибка!
   конец цикла
end

вываливается ошибка типа "Subscript out of range!"
 

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #1 Добавлено: 28.04.07 12:11
Если определять массив как динамический, то никаких проблем на возникает
Dim massive() As Byte


Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 28.04.07 12:15
А помоему, нельзя менять никакую рамерность кроме крайней правой, т.е.
redim preserve massive(1 to 3, 1 to n)
работать будет

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 28.04.07 12:15
ZagZag, прочитай еще раз вопрос и пойми в чем ты не прафф :)

Ответить

Номер ответа: 4
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #4 Добавлено: 28.04.07 13:07
http://vbnet.ru/samples/download.aspx?id=691

Ответить

Номер ответа: 5
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #5 Добавлено: 28.04.07 14:25
AgentFire, прочитал, понял.
Не работает
Option Explicit
Private massive() As Integer
    
Private Sub Form_Load()
Dim lngIndex As Long, lngCount As Long
    lngCount = 10
    For lngIndex = 2 To 10
        ReDim Preserve massive(1 To lngIndex, 1 To 3)
    Next
End Sub


Работает
Option Explicit
Private massive() As Integer
    
Private Sub Form_Load()
Dim lngIndex As Long, lngCount As Long
    lngCount = 10
    For lngIndex = 2 To 10
        ReDim Preserve massive(1 To 3, 1 To lngIndex)
    Next
End Sub


Странно

Ответить

Номер ответа: 6
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #6 Добавлено: 28.04.07 16:35
Ничего странного - после изменения первой размерности растра уже имеющиеся строки будут расколбашены. Так что Preserve тут не прокатит. Если нужно изменить размер изображения, сохраняя при этом картинку - создавай второй массив.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам