динамический массив

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alexmckey
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 25.04.2005 (Пн) 17:35

динамический массив

Сообщение alexmckey » 19.08.2009 (Ср) 22:47

например такой код:
Код: Выделить всё
Private Sub Command1_Click()
dim i as integer
dim massiv() as long:massiv=func(false,i)
'массив получил размерность?
dim b as integer:b=Ubound(massiv)
End Sub

Private function func(boo as boolean,ind as integer) as long()
if boo then
redim d(ind) as long
'bla bla bla
end if
func=d
End function

как узнать, что массив получил размерность
mckey

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: динамический массив

Сообщение SLIM » 19.08.2009 (Ср) 23:07

Проверить верхнюю границу массива
Пишите жизнь на чистовик.....переписать не удастся.....

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: динамический массив

Сообщение Денис » 20.08.2009 (Чт) 9:27

Рекомендую передавать массив как ByRef-аргумент в функцию, а сама функция пусть возвращает true если массив получил размерность и false если не получил.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alexmckey
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 25.04.2005 (Пн) 17:35

Re: динамический массив

Сообщение alexmckey » 20.08.2009 (Чт) 15:39

это как,например?
mckey

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: динамический массив

Сообщение Денис » 21.08.2009 (Пт) 13:43

alexmckey писал(а):это как,например?


Код: Выделить всё
Option Explicit

Private Sub Command1_Click()
   
   Dim i As Integer
   Dim Massiv() As Long
   
   i = 12
   
   If Func(False, i, Massiv()) Then
      'массив получил размерность!
      Debug.Print UBound(Massiv)
   End If

End Sub

Private Function Func(SaveData As Boolean, Ind As Integer, Arr As Variant) As Boolean
   
   If SaveData Then
      ReDim Preserve Arr(Ind) As Long
      Func = True
   Else
      ReDim Arr(Ind) As Long
      Func = True
   End If

End Function


как-то так
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 95

    TopList