powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Функция возвращающая массив
12 сообщений из 12, страница 1 из 1
Функция возвращающая массив
    #32598951
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция возвращающая массив значений:

Код: plaintext
fn_parse(string as_string, string as_delimeter, ref string as_words[])

возвращающая в as_words[] список слов содержащихся в строке as_string . Можно ли написать функцию, которую можно использовать так:

Код: plaintext
as_words[] = fn_parse(string as_string, string as_delimeter)
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32598965
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращать массивы проще через структуры:
Структура:
global type decarray from structure
decimal{0} arr[]
end type

Функция:
global type f_test from function_object
end type

forward prototypes
global function decarray f_test (integer ai_test)
end prototypes

global function decarray f_test (integer ai_test);decarray ldc
ldc.arr[1]=1
ldc.arr[2]=2
return ldc
end function
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32599037
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвозвращающая в as_words[] список слов содержащихся в строке as_string. Можно ли написать функцию, которую можно использовать так:
as_words[] = fn_parse(string as_string, string as_delimeter)

Можно написать так:
Код: plaintext
fn_parse(string as_string, string as_delimeter, as_words)

as_words объявите как ref String as_words[]
Передайте в функцию ссылку на массив, который будете заполнять в функции, а в качесве возвращаемого значения передавайте допустим кол-во добавленных в массив элементов.
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32599052
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ermak , а вы вообще мое сообщение читали? Я и написал что сейчас использую такой вариант.
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32599157
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон.
Тогда гоняйте через стуктуру
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600447
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже через структуру такой assignment авторas_words[] = fn_parse всё равно не выйдет.
А в чём проблема с reference argumentом?
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600728
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп , проблем с ref-аргументом нет, просто в скриптах присваивание вида var = fn_calc() смотрится более наглядно и другому человеку легче потом разбираться в чужой программе. Придется отдельно указать на этот момент. :)
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600734
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легче всего программа читается, если она написана, придерживаясь общих стандартов языка. В PB принято массивы и обьекты возвращать через REFERENCE, а результатом выполнения функции/события код успешности выполнения и наверное лучше так же и писать. Я например при создании функций обработки массивов работаю с ними через REFERENCE, а результатом функции возвращаю -1, если ошибка или же число элементов в возвращаемом массиве.

P.S. Если осуществляется множество действий с полученным массивом, то может быть стоит подумать о создании собственного класса обработки строк, а не глобальных функций.
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600743
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS , я согласен насчет стандартов языка. Но часто бывает более одного способа выполнить задачу и если бы можно было использовать такой, интуитивно понятный , как любят говорить, способ записи - я бы использовал его. Ну а нет - так нет, будем писать как положено. :)
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600755
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
E-doc Филипп , проблем с ref-аргументом нет, просто в скриптах присваивание вида var = fn_calc() смотрится более наглядно и другому человеку легче потом разбираться в чужой программе. Придется отдельно указать на этот момент. :)
Для этого надо использовать комментарии
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600767
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Геннадич , согласен. Кстати о комментариях - встречал в приложенных фрагментах кода, например у Филиппа , большие и пространные комментарии, явно сгенерированные автоматически. Чем это делается?
...
Рейтинг: 0 / 0
Функция возвращающая массив
    #32600784
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я комментарии делаю вот зтим http://www.romu.com/smartpaste.html
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Функция возвращающая массив
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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