Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический массив 
V
    Опции темы
BuShaRt
Дата 19.9.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Есть ли в Delphi инструменты для создания безразмерного последовательно заполняемого массива? 

Т.е. окончательную длину массива мы не определяем и каждая новая запись в массив, автоматически записывается на новую ссылку.

Допустим есть массив array - делаем в него запись и она сохраняется на array[0], следующая сама записывается на array[1], при этом "счетчики" не используются.

PM MAIL   Вверх
Qu1nt
Дата 19.9.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



TList.
PM MAIL   Вверх
BuShaRt
Дата 19.9.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Массив можно формировать из структур, созданных Record, а с TList сделать это не получается или это по другому реализуется?


PM MAIL   Вверх
Qu1nt
Дата 19.9.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Используй классы и TObjectList.
PM MAIL   Вверх
BuShaRt
Дата 19.9.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Вот почитал инфу, мне показалось, что проще самому написать свой пользовательский класс на базе динамических массивов. TList, конечно, востребованный инструмент, но в рамках задачи уж как-то больно массивен. 
PM MAIL   Вверх
~FoX~
Дата 20.9.2009, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



BuShaRt, Счетчик то все равно используется, только он закопан внутри класса... А чем просто динамический массив не подходит?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
BuShaRt
Дата 20.9.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



~FoX~, 
Я предполагал, что есть вариант, чтоб Delphi сам вел этот счетчик, но как я понял это в нем не реализовано, теперь я просто использую динамический массив с счетчиком.
PM MAIL   Вверх
Frees
Дата 20.9.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



BuShaRt, ИМХО лучше TList, и не надо велосипед изобретать


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
bems
Дата 20.9.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Contnrs.TStack


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ConstantinXXX
Дата 20.9.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)

Репутация: нет
Всего: 0



Может через строки замутить? smile
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
BuShaRt
Дата 21.9.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Цитата(Frees @  20.9.2009,  20:16 Найти цитируемый пост)
BuShaRt, ИМХО лучше TList, и не надо велосипед изобретать 

Зачем тянуть такие массивные конструкции, если можно просто завести счетчик?
PM MAIL   Вверх
Frees
Дата 21.9.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(BuShaRt @  21.9.2009,  15:22 Найти цитируемый пост)
Зачем тянуть такие массивные конструкции, если можно просто завести счетчик?

потому что вы начинаете повторять эти конструкции, да и не такие уж они и массивные..



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
kami
Дата 21.9.2009, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(BuShaRt @  21.9.2009,  12:22 Найти цитируемый пост)
Зачем тянуть такие массивные конструкции,

Я бы не сказал, что Tlist - массивная конструкция. Его код минимален (имхо) и очень хорошо "заточен" под такие задачи. Придумать что-нибудь эффективнее у Вас вряд ли получится.
И в любом случае - если используется VCL, то реализация TList будет с вероятностью 99,9% включена в экзешник. (пример - TCustomForm.FActionLists: TList; TReader.FLoaded: TList и т.д.) Одним экземпляром класса больше - одним меньше, разница небольшая.

Это сообщение отредактировал(а) kami - 21.9.2009, 12:51
PM MAIL WWW   Вверх
BuShaRt
Дата 22.9.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



Цитата(kami @  21.9.2009,  12:36 Найти цитируемый пост)
Придумать что-нибудь эффективнее у Вас вряд ли получится.


Что тут придумывать, пишешь функцию со счетчиком и в зависимости от значения счетчика: А. Увеличиваешь каждый раз длину массива Б. Адресуешь данные в точное место массива. И если мне в рамках задачи не нужна сортировка, удаление, смена позиций и прочие, то я решительно не понимаю, зачем усложнять код?

Добавлено через 1 минуту и 11 секунд
Цитата(kami @  21.9.2009,  12:36 Найти цитируемый пост)
Одним экземпляром класса больше - одним меньше, разница небольшая.

А потом мы мучаемся от отечественного софта и радуемся 38-ому месту по развитости в сфере ИТ.
PM MAIL   Вверх
CodeMonkey
Дата 22.9.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(BuShaRt @  22.9.2009,  08:37 Найти цитируемый пост)
А потом мы мучаемся от отечественного софта и радуемся 38-ому месту по развитости в сфере ИТ. 

В огороде бузина а в Киеве дядька.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.