|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.03.2011, 08:23 | #1 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
может ли функция возвратить массив?
хотел сделать функцию съедающую строчку чисел с разделителями и создающую в ответ массив
На моё Код:
Есть ещё другая идейка - сделать процедуру и передавать в неё ещё и имя массива, только я не дотумкал как это сделать, вот так я пробовал, не получилось: Код:
|
25.03.2011, 09:21 | #2 |
220400
Форумчанин
Регистрация: 21.05.2010
Сообщений: 726
|
Код:
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам. Не учите человека, если вы не его учитель. |
25.03.2011, 10:18 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Хочу заметить, что можно и результат функции возвращать массив.
Только для этого нужно описать тип. вот так, например: Код:
|
25.03.2011, 10:49 | #4 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
спасибо, реализовал второй вариант и всё работает
Второй вариант выбрал чтобы не заморачиваться с лишними массивами, т.к. может мне и не нужно всё это добро будет в глобальный массив ложить, я его сразу потреблю по назначению, А будет нужно так результат функции положу в глабальный массив. Ещё раз спасибо upd - оппа а в обычный массив то и не ложится Последний раз редактировалось BoozZzilla; 25.03.2011 в 10:52. |
25.03.2011, 11:09 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> это и нагляднее и надежнее
нагляднее да, но надёжность там одинаковая, фактически result превращяется в неявный var параметр, и даже если результат функции ничему не присвоить, Дельфи сама добавит неявную переменную для передачи в качестве неявного параметра: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
25.03.2011, 11:22 | #6 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
но как мне после реализации этого безобразия в виде функции положить результат в обычный массив? компилятор ругается что несовместимые типы если я просто вот так делаю:
Код:
Последний раз редактировалось BoozZzilla; 25.03.2011 в 11:25. |
25.03.2011, 11:26 | #7 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
var
MyArray: MyArrayType ..... MyArray:=StrToArr('1,2,3') |
25.03.2011, 11:36 | #8 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Спасибо, теперь всё работает
просто выходит везде где мне нужно будет использовать массивы пересекающиеся с этой функцией я использую свой тип |
25.03.2011, 12:29 | #9 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Продолжая изыски попробовал первый вариант
процедура объявляется как было мне посоветовано: Код:
Код:
без динамического изменения длины массива как то не представляю себе эту процедуру. У меня есть переменная, процедура знает что это динамический массив - почему она не хочет кушать эту строчку? upd- если это важно, запускается процедура так: Код:
Последний раз редактировалось BoozZzilla; 25.03.2011 в 12:32. |
25.03.2011, 12:35 | #10 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
> Ругается что inompatible types
И правильно ругается. Открытый массив - далеко не тоже самое что и динамический массив. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция возвращает массив | Рик | Общие вопросы Delphi | 5 | 22.03.2011 09:07 |
Может ли функция возвращать массив? | TzX | Общие вопросы Delphi | 4 | 20.09.2010 19:27 |
какая функция может вывести максимальное значение Double, Single, Extended, Real? | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 14 | 14.07.2010 05:50 |
Как возвратить фокус? | Кинельски | Общие вопросы Delphi | 1 | 12.06.2010 17:46 |
Как в функции возвратить 2 значения? | Etlau | Помощь студентам | 4 | 20.06.2008 21:27 |