![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Juice |
|
||||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 13.1.2007 Репутация: нет Всего: нет |
Господа, подскажите, как правильно вызвать функцию, возвращающую динамический массив значений?
Подробнее: надо создать функцию (только чур не подсказывать ![]() Вижу это так:
В самой программе
По моей логике в MyAr должно содержаться 'Ис', 'ход', 'ная строка'. Это я описАл, как по моему мнению должно работать. На самом деле этот вариант не работает. Тест и номер ошибки не привожу, т.к., мне кажется это не суть важно из-за того, что я либо неправильно объявляю, либо неправильно вызываю. Пытаюсь это в D7 сделать. |
||||
|
|||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: 1 Всего: 4 |
Так а как нам понять, в чём ошибка? Телепатически? С точки зрения синтаксиса тут всё правильно ![]() Хотелось бы увидеть ошибку и текст самой функции:
-------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 9 Всего: 116 |
Неправда... ОТКРЫТЫЙ и ДИНАМИЧЕСКИЙ массив - это совсем разные вещи...
|
|||
|
||||
Juice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 13.1.2007 Репутация: нет Всего: нет |
volvo877, удивляюсь, почему у тебя плюсов так мало. Спасибо, заработало.
А не подскажешь ещё синтаксис, как вызвать функцию без передачи ей в качестве параметров предварительно заполненного массива, а задавая конкретные значения? Например
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
|
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: 1 Всего: 4 |
volvo877, В функцию нужно отправлять только динамический массив? -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 9 Всего: 116 |
Это автору виднее... Хочешь - отправляй динамический, хочешь - нет...
Но уж если он отправляет динамический (что видно из его кода), то функция должна ожидать динамический, правда? Что для этого надо сделать - я написал выше. |
|||
|
||||
profesiachuvak |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: 1 Всего: 4 |
Понятно, то есть как решение проблемы можно было описать массив так :
Или описание фун-ции SplitByPos от этого тоже изменилось? -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
||||
|
|||||
Juice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 13.1.2007 Репутация: нет Всего: нет |
Просто хочется сделать универсальную функцию. Например, если тебе надо разбить строку на две (по определённой позиции), то надо писать функцию SplitNumberOne, где у тебя происходит разбивка на 2 подстроки. Следующую строку надо бить на четыре (по определённой позиции), опять пишем функцию SplitNumberTwo, бьющую входящую строку на 4 подстроки.
Ну так вот, что бы не писать эти множество функций, проще сделать универсальную функцию, которой передаёшь исходную строку и номера позиций в ней, а она будет возвращать необходимое количество подстрок. Кроме как передавать функции динамический массив целых, а та, в свою очередь, возвратит динамический массив строк, я не знаю как достичь этой универсальности. А если использовать
|
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Это сообщение отредактировал(а) Qu1nt - 25.12.2009, 19:36 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: 1 Всего: 4 |
Конечно. Динамический массив универсальнее. -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
будет работать. -------------------- Обижено школьников: 8 |
|||
|
||||
Juice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 13.1.2007 Репутация: нет Всего: нет |
Вызов процедуры вида
не получается. Ошибка "[Error] Unit1.pas(39): Incompatible types: 'Set' and 'ArrInt'", ArrInt = array of integer; Это сообщение отредактировал(а) Juice - 26.12.2009, 17:14 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Я ж говорю, окрытый объявляй
-------------------- Обижено школьников: 8 |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Чем мой пример не понравился?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |