Возвращение нескольких результатов из функции + Разбиение строки по символу
Метод №1: использование глобальных массивов.
У этого метода есть ограничение, о котором ниже, но для простых каких-то задач сгодится. Как альтернатива - свои списки (упрощённые) использовать ( Была задачка разбить строку на подстроки по знаку-разделителю. Я захотел вернуть массив строк. Просто через "Return mas" блитц не умеет. Поэтому я сделал глобальный массив для хранения результатов работы функции. Код:
;инфа для возврата значений из функций Код:
130,30,30 Пример использования: Код:
fnSplitString("100,exit,-7") Код:
Local s1$ = "0,0;1,0;1,1;0,1", s2$ |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
Цитата:
Переменная k не определена как Local. Как вариант можно передавать через параметры функции статические массивы, просто заранее определить максимальный размер, некрасиво конечно, но как вариант. Ну а насчет затирания предыдущих результатов, если не лень, можно написать для каждого типа парсинга свой вариант :) ЗЫ Правка: забыл что в блице нет ReDim и новый Dim удаляет старые данные. Ну и в крайнем случае можно банки использовать, неудобно конечно что встроеного PokeString нету. |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
Цитата:
Цитата:
Цитата:
Спасибо за комменты :) |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
Цитата:
Цитата:
Код:
fnSplitString(s$,smb$=",",strings$[константный размер]) А еще лучше хранить данные в бинарном виде :) |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
Код:
Dim a$(0) Глобальная К - опасно, сам такое не сделаю, но всё же полезно при написании кода на экспорт людям. "Массивы с квадратными скобками" - для данного примера не сгодятся, но на будущее припомню. |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
Кстати -1 тоже корректный размер, и судя по тому что доступ к нулевому элементу вызывает "index out of bounds", память освобождается. |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Метод №2: использование связных списков
Здесь пример использования подобия связного списка для возвращения неограниченного числа параметров из функции. Код:
;создание списка с параметрами - головной узел Код:
Local cl$ = CommandLine() |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Эээээ так это ты так с БМаксом изголяешься??? 0_о
На БМаксе так делать это всеравно что с куклой на свидание сходить =) В БМаксе функции могут возвращать что угодно, хоть массивы, хоть контейнеры. Ну а если надо указать прямо, то для таких целей там есть специальный оператор - "Var", который передает прямой адрес переменной. |
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
написано же, раздел для Blitz3D...
|
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Diablo1909, мои примеры выше для Blitz3D.
Научи меня вот этому: Цитата:
|
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Кирилицу в названиях файла всегда надо убирать. Ибо не везде работает.
|
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Приходится убирать :) Я для себя утилитки пишу, поэтому универсальность не нужна.
|
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
|
Ответ: Возвращение нескольких результатов из функции + Разбиение строки по символу
Цитата:
|
Часовой пояс GMT +4, время: 14:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot