функция возвращает массив

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

функция возвращает массив

Сообщение drronnie » 26.10.2004 (Вт) 1:05

Господа, как сделать, чтоб функция возвращала массив?
Например функция test с аргуметами aaa и bbb возвращает массив размером aaa на bbb все элементы которого равны 5...
Как реализовать
Компиляция - перевод словесного поноса в машинный код.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 26.10.2004 (Вт) 6:51

Например функция test с аргуметами aaa и bbb возвращает массив размером aaa на bbb все элементы которого равны 5...

Можно так:

Код: Выделить всё
Private Sub MySyb(aaa As Long, bbb As Long, MyArr() As Long)
    Dim i As Long
    Redim MyArr(aaa To bbb)
    For i = aaa To bbb
        MyArr(i) = 5
    Next i
Next Sub
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 26.10.2004 (Вт) 7:52

Или так:
Код: Выделить всё
Private Function test(aaa As Long, bbb As Long) as long()
    Dim i As Long
Dim myarr() As Long
    Redim MyArr(aaa To bbb)
    For i = aaa To bbb
        MyArr(i) = 5
    Next i
test = myarr
end function
Последний раз редактировалось GM 26.10.2004 (Вт) 8:05, всего редактировалось 1 раз.
الفيجوال بيسك الرابح

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.10.2004 (Вт) 7:59

Странно...Саму ф-цию компилирует, а как запускать?
Код: Выделить всё
Private Sub Form_Load()
Dim arr As Long

arr = test(0, 5)
End Sub

VB 6 писал(а):---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

Type mismatch
---------------------------
OK Help
---------------------------
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.10.2004 (Вт) 8:00

такой вариант тоже не катит:
Код: Выделить всё
Private Sub Form_Load()
Dim arr() As Long

arr = test(0, 5)
End Sub

VB 6 писал(а):---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

Can't assign to array
---------------------------
OK Help
---------------------------
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 26.10.2004 (Вт) 8:03

А так:
Код: Выделить всё
Private Sub Form_Load()
Dim arr() As Long

arr = test(0, 5)
End Sub
Private Function test(aaa As Long, bbb As Long) As Long()
    Dim i As Long
    Dim myarr() As Long
    ReDim myarr(aaa To bbb)
    For i = aaa To bbb
        myarr(i) = 5
    Next i
test = myarr
End Function
الفيجوال بيسك الرابح

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.10.2004 (Вт) 8:05

А это работает :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

drronnie
Постоялец
Постоялец
 
Сообщения: 793
Зарегистрирован: 04.03.2002 (Пн) 22:29
Откуда: Украина, Алчевск

Сообщение drronnie » 28.10.2004 (Чт) 7:05

Спасибо!
Компиляция - перевод словесного поноса в машинный код.


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

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

Сейчас этот форум просматривают: PetalBot и гости: 10

    TopList