16.01.2007, 12:35 | #1 |
Участник
|
Задача: необходимо получить массив данных, который возвращает функция.
Есть переменная Mass_1 - массив, тип Text. Есть функция Func_1, которая возвращает массив строковых элементов. Пишу Mass_1:=Func_1; Navision ругается: ":= cannot be performed on arrays. Choose a single array value using an expression such as: MyArray[...]" |
|
16.01.2007, 12:37 | #2 |
Участник
|
Цитата:
Сообщение от Programmer
Задача: необходимо получить массив данных, который возвращает функция.
Есть переменная Mass_1 - массив, тип Text. Есть функция Func_1, которая возвращает массив строковых элементов. Пишу Mass_1:=Func_1; Navision ругается: ":= cannot be performed on arrays. Choose a single array value using an expression such as: MyArray[...]" |
|
16.01.2007, 13:43 | #3 |
Участник
|
Цитата:
Передавайте массив в функцию варом.
Mass_1:=AnyAutomation.Func_1; Mass_1 - одномерный тектсовый массив. Mas_2 - одномерный string-овый массив. Функция AnyAutomation.Func_1 выполняет свои операции и в итоге возвращает массив Mas_2. И этот массив нужно присвоить массиву Mass_1. |
|
16.01.2007, 14:11 | #4 |
Участник
|
Цитата:
Сообщение от Programmer
Цитата:
Передавайте массив в функцию варом.
Mass_1:=AnyAutomation.Func_1; Mass_1 - одномерный тектсовый массив. Mas_2 - одномерный string-овый массив. Функция AnyAutomation.Func_1 выполняет свои операции и в итоге возвращает массив Mas_2. И этот массив нужно присвоить массиву Mass_1. |
|
16.01.2007, 14:34 | #5 |
Участник
|
AnyAutomation.Func_1 возвращает SafeArray (скорее всего), а этот тип не поддерживает Nav.
Передать Варом - вызвать AnyAutomation.Func_1(Mass_1) так же не получится, тут тоже будет SafeArray. |
|
16.01.2007, 14:40 | #6 |
Участник
|
У меня именно такая ситуация:
Цитата:
AnyAutomation.Func_1 возвращает SafeArray (скорее всего), а этот тип не поддерживает Nav.
Передать Варом - вызвать AnyAutomation.Func_1(Mass_1) так же не получится, тут тоже будет SafeArray. |
|
27.07.2007, 09:35 | #7 |
Участник
|
Есть массив типа text. Нужно получать символы элементов массива. При записи text[1][1] или text[1,1] ругается на выход массива за допустимые интервалы.
Можно ли сделать это без использования дополнительной текстовой переменной? |
|
27.07.2007, 11:02 | #8 |
Участник
|
Код: COPYSTR(Strarray[1],x,1); - где, х - позиция символа
__________________
Должен остаться только один. |
|
27.07.2007, 11:26 | #9 |
Участник
|
|
|
27.07.2007, 11:44 | #10 |
Участник
|
Это не изврат. Тут все так. Это путь воина.
__________________
Должен остаться только один. |
|
27.07.2007, 16:20 | #11 |
Участник
|
Тогда такой вопрос: откуда уверенность, что вызов в цикле N раз COPYSTR () оптимальнее, чем один раз присвоить промежуточной текстовой переменной tmp:=text[i], а потом обращаться к символам через tmp[j]?
Просто я не в курсе как в Navision с внутренней оптимизацией выполнения COPYSTR, но вызов в цикле N раз подпрограммы лично мне глаза режет. |
|
27.07.2007, 17:09 | #12 |
Участник
|
Уверенность равна нулю.
Различие в плане производительности от применения того или другого способа, тоже равна нулю. (не это нужно оптимизировать). Пишите так, чтобы лично вам было понятно и другие, кто будет после вас, не матерились. p.s. Способ: COPYSTR(Strarray[1],x,1) - отстой
__________________
Должен остаться только один. |
|