powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / двумерный массив
4 сообщений из 4, страница 1 из 1
двумерный массив
    #33710389
синоптик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переписываю программу с Си на VB 6, застряла на массиве.
В Си он написан так:
Float dan[3][163]={{0.9,1.6,…..} ‘163 значения
{0.8,1.2,…..}
{0.7,1.4,…..}}
В VB записала:
Option Base 1
Dim dan(3, 163) As Variant (или As Double)
dan(3, 163) = Array(0.9, 1.6,……) _
(0.8,1.2,…….) _
(0.7,1.4,….)
Компилятор это пропускает, но при выполнении выдается ошибка «индекс выходит за пределы диапазона». Подскажите как записать правильно.
...
Рейтинг: 0 / 0
двумерный массив
    #33710982
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Visual Basic существуют массивы фиксированного размера и динамические массивы.
...
Рейтинг: 0 / 0
двумерный массив
    #33711111
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, VB6 не поддерживает инициализацию массивов при объявлении поэтому делаем так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Option Base  1 
Dim dan( 3 ) As Variant

Private Sub Form_Load()
   dan( 1 ) = Array( 0 . 9 ,  1 . 6 ,  2 . 2 , ...)
   dan( 2 ) = Array( 0 . 8 ,  1 . 2 , ...)
   dan( 3 ) = Array( 0 . 7 ,  1 . 4 , ...)
End Sub
Или так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Option Base  1 
Dim dan( 3 ,  163 ) As Double

Private Sub Form_Load()
   InitDan  1 , Array( 0 . 9 ,  1 . 6 ,  2 . 2 )
   InitDan  2 , Array( 0 . 8 ,  1 . 2 )
   InitDan  3 , Array( 0 . 7 ,  1 . 4 )
End Sub

Private Sub InitDan(ByVal Col As Long, ByRef v As Variant)
   Dim i As Long
   If Not IsArray(v) Then Exit Sub
   For i =  1  To UBound(v)
      dan(Col, i) = v(i)
   Next
End Sub
(если надо строгие типы)
...
Рейтинг: 0 / 0
двумерный массив
    #33711119
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и обращаться к массиву вариантных переменных после такой инициализации можно так:
Код: plaintext
dan( 2 ,  34 )
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / двумерный массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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