• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Выходное значение функции

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет!
Вот столкнулся с какой проблемой...
Есть библиотека... в ней функция которая должна вернуть массив вот такого вида (тип Variant)
[1] ( [1.1] [1.2] [1.3]...)
[2] ( [2.1] [2.2] [2.3]...)
[3] ( [3.1] [3.2] [3.3]...)
Массив нормально формируется... Но вот к сожалению не получается вернуть такой массив как результат работы функции... при присваивании результата функции возникает ошибка Несоответствие типов
Если использовать глобальную переменную (тип Variant) в этой библиотеке возникает вторая проблема - на клиентах 7.хх эта переменная пустая :(
Пишу и тестирую на 8.5.1 - все отлично!
Подскажите, как выйти из этой ситуации?
 
O

Omh

Это типа двухмерный массив string?

Можно его попробовать передать как параметр, заполнять в ф-ии, а из ф-ии возвращать boolean (т.е. True, если всё заполнилось правильно).

:(
 
K

KFire3

А можно попробовать определить такой тип данных как класс, ну и дальше с ним и работать как с классом.

Вынести функции работы с таким массивом как методы класса, и потом не парится с обработкой в основном коде.

Я вижу только плюсы :( И вообще, я бы даже сказал что пытаться работать с такими структурами данных как с массивами вариантов - это извращение. От вот таких вещей и получаются потом абсолютно нечитаемые портянки кода на 200-300 строк.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
KFire3
неее... спасибо... класс как-то писать не хочется.... геморроя больше чем пользы.. по крайней мере в моем варианте

Добавлено: Medevic
Ну а чего код смотреть?

функция
Код:
Function MyFn( doc as notesdocument ) as Variant

MyArray формируется так.
Код:
Dim myArray as variant
......
If IsArray( myArray) Then
ReDim Preserve myArray( UBound( myArray) + 1 )							
Else
ReDim myArray( 0 )
End If
myArray( UBound( myArray) ) = cell

возвращаю значение так
MyFn = myArray
 
T

TIA

NickProstoNick
Всё работает. Пример:

Код:
Sub Initialize
Dim y%, x%, vYX, vYX2, s$

vYX2 = fill( vYX ) 'два способа заполнения

For y = 0 To Ubound( vYX2, 1 )
s = ""
For x = 0 To Ubound( vYX2, 2 )
s = s & vYX2( y, x ) & ","
Next
Print s
Next
End Sub


Function fill( v ) As Variant
Const DY%=3
Const DX%=4
Dim Arr$( DY, DX), x%, y%

For y = 0 To Ubound( Arr, 1 )
For x = 0 To Ubound( Arr, 2 )
Arr(y, x) = y*10 + x
Next		
Next
v = Arr
fill = Arr
End Function
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!