powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TObjectDictionary в Delphi 2007
4 сообщений из 4, страница 1 из 1
TObjectDictionary в Delphi 2007
    #39764237
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На этой неделе озадачился поиском быстрого списка. Нужно было хранить данные в виде key=value. Раньше всегда использовал для таких целей TStringList либо THashedStringList (из IniFiles). Встала задача быстрого заполнения большого списка, но перед каждым добавлением требуется проверять наличие элемента key (если уже имеется, то обновлять значение value). При попытке реализации такой задачи на списках, выяснилось, что TStringList и THashedStringList работают с одинаковой скорость, безумно медленно. Начал искать в интернете реализацию быстрых списков, ничего путного для Delphi 2007 не нашёл.
Решил в очередной раз покопаться в исходниках Дэвида Батлера и нашёл там TObjectDictionary. Оказалось, что это то, что нужно. Добавление элементов поочерёдно в поиском выполняется в сотни раз быстрее, чем у TStringList и THashedStringList.
Помимо TObjectDictionary у Батлера есть также TLongIntDictionary, TLongWordDictionary, TInt64Dictionary, TSingleDictionary, TDoubleDictionary и т.д.

Возможно, данный пост будет полезен для тех, у кого нет Generics.Collections.
...
Рейтинг: 0 / 0
TObjectDictionary в Delphi 2007
    #39764305
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

Ты бы ссылочку привел, откуда сие скачать можно...
...
Рейтинг: 0 / 0
TObjectDictionary в Delphi 2007
    #39764318
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerНа этой неделе озадачился поиском быстрого списка. Нужно было хранить данные в виде key=value. Раньше всегда использовал для таких целей TStringList либо THashedStringList (из IniFiles). Встала задача быстрого заполнения большого списка, но перед каждым добавлением требуется проверять наличие элемента key (если уже имеется, то обновлять значение value). При попытке реализации такой задачи на списках, выяснилось, что TStringList и THashedStringList работают с одинаковой скорость, безумно медленно. Начал искать в интернете реализацию быстрых списков, ничего путного для Delphi 2007 не нашёл.
Решил в очередной раз покопаться в исходниках Дэвида Батлера и нашёл там TObjectDictionary. Оказалось, что это то, что нужно. Добавление элементов поочерёдно в поиском выполняется в сотни раз быстрее, чем у TStringList и THashedStringList.
Помимо TObjectDictionary у Батлера есть также TLongIntDictionary, TLongWordDictionary, TInt64Dictionary, TSingleDictionary, TDoubleDictionary и т.д.

Возможно, данный пост будет полезен для тех, у кого нет Generics.Collections.

https://github.com/fundamentalslib/fundamentals5

Давно использую, еще с древних версий. Надежные, код понятный.

Конкретно словари - в модуле flcDataStructs.
...
Рейтинг: 0 / 0
TObjectDictionary в Delphi 2007
    #39764392
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот-этими пользуюсь:
https://github.com/fundamentalslib/fundamentals4

Там другое название у модулей, без "fl"
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TObjectDictionary в Delphi 2007
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]