![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Limonadni Joe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 1.11.2002 Где: Москва Репутация: нет Всего: 2 |
Хочу создать функцию, которая инкриментировала бы длину любого дин. массива. Массив передается в качестве параметра по ссылке. Как это можно оформить для массивов с любыми типами элементов? Для ясности привожу предполагаемый код:
P.S. Кстати, что лучше: "Succ" или "+1"? |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
собственно, примерно так, как ты написал и оформить,только вот зачем? IncLength (x) выглядит эстетичнее стандартного SetLength (x, Length (x) + 1)) или SetLength (x, Succ (Length (x))) ?
я не уверен, что удасться задать в качестве входящего параметр с массивом любого типа, но для этого существует overload. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Передавай указатель на массив и тогда это будет работать с любыми массивами
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Limonadni Joe |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 1.11.2002 Где: Москва Репутация: нет Всего: 2 |
|
||||
|
|||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Хотя я не понимаю в чем выгода
var Form1: TForm1; s:string; a: array of byte; implementation {$R *.dfm} procedure TForm1.u(var x:pointer); begin SetLength(string(x), length(string(x)) + 1); end; procedure TForm1.Button1Click(Sender: TObject); begin u(pointer(s)); caption := inttostr(length(s)); end; procedure TForm1.Button2Click(Sender: TObject); begin u(pointer(a)); caption := inttostr(length(a)); end; Это сообщение отредактировал(а) man2002ua - 18.9.2003, 16:08 -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Для массива с элементами любого типа так не подойдет, ибо ты увеличиваешь размер на один байт, в то время как массив, к примеру, из integer'ов надо увеличивать на четыре. Общего решения, боюсь, средствами делфи не сделать, так что overload. -------------------- Волны гасят ветер... |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
да, верно. жаль
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |