![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Есть ли в Delphi инструменты для создания безразмерного последовательно заполняемого массива?
Т.е. окончательную длину массива мы не определяем и каждая новая запись в массив, автоматически записывается на новую ссылку. Допустим есть массив array - делаем в него запись и она сохраняется на array[0], следующая сама записывается на array[1], при этом "счетчики" не используются. |
|||
|
||||
| Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
TList.
|
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Массив можно формировать из структур, созданных Record, а с TList сделать это не получается или это по другому реализуется?
|
|||
|
||||
| Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Используй классы и TObjectList.
|
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Вот почитал инфу, мне показалось, что проще самому написать свой пользовательский класс на базе динамических массивов. TList, конечно, востребованный инструмент, но в рамках задачи уж как-то больно массивен.
|
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 5 Всего: 68 |
BuShaRt, Счетчик то все равно используется, только он закопан внутри класса... А чем просто динамический массив не подходит?
|
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
~FoX~,
Я предполагал, что есть вариант, чтоб Delphi сам вел этот счетчик, но как я понял это в нем не реализовано, теперь я просто использую динамический массив с счетчиком. |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
BuShaRt, ИМХО лучше TList, и не надо велосипед изобретать
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Contnrs.TStack
-------------------- Обижено школьников: 8 |
|||
|
||||
| ConstantinXXX |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
Может через строки замутить?
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
||||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
потому что вы начинаете повторять эти конструкции, да и не такие уж они и массивные.. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Я бы не сказал, что Tlist - массивная конструкция. Его код минимален (имхо) и очень хорошо "заточен" под такие задачи. Придумать что-нибудь эффективнее у Вас вряд ли получится. И в любом случае - если используется VCL, то реализация TList будет с вероятностью 99,9% включена в экзешник. (пример - TCustomForm.FActionLists: TList; TReader.FLoaded: TList и т.д.) Одним экземпляром класса больше - одним меньше, разница небольшая. Это сообщение отредактировал(а) kami - 21.9.2009, 12:51 |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Что тут придумывать, пишешь функцию со счетчиком и в зависимости от значения счетчика: А. Увеличиваешь каждый раз длину массива Б. Адресуешь данные в точное место массива. И если мне в рамках задачи не нужна сортировка, удаление, смена позиций и прочие, то я решительно не понимаю, зачем усложнять код? Добавлено через 1 минуту и 11 секунд А потом мы мучаемся от отечественного софта и радуемся 38-ому месту по развитости в сфере ИТ. |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
В огороде бузина а в Киеве дядька. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
![]()
|
| Правила форума "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. |