![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| CODeRUS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 25.7.2007 Репутация: нет Всего: нет |
Подскажите, можно ли в Делфи воздать словарь с числовыми полями?
Про StringList.Values я знаю, но слегка неэффективен он. Задача хранить большой такой словарь (не меньше 5000) значений число - строка. Поля начинаются с $80000000 и заканчиваются примерно $84000000 Если идея создавать динамический массив, но программа падает на SetLength(array, $84000000) Подскажите кто сталкивался оптимальное решеение. |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Модератор: Сообщение скрыто. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Из которых, при том, реально планируется использовать только последние 260 Мб -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
|
|||
|
||||
| CODeRUS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 25.7.2007 Репутация: нет Всего: нет |
В разделе для новичков же специально тему создал, чтобы послушать советы а не *ржунимагушки*
Никогда не решал задачи со словарями в Делфи, до этого пользовался питоном - там все просто было. Единственное что приходит в голову - сделать SetLength( $4000000 ) и при использовании смещать индексы. Это сообщение отредактировал(а) CODeRUS - 15.2.2011, 00:37 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну так сделай SetLength(array, $4000000) -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| CODeRUS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 25.7.2007 Репутация: нет Всего: нет |
Да так и сделал, и все-таки. В делфи нет реализации числовых словарей?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Когда я слышу про массивы на несколько сот мегабайт, то вспоминаю историю "о сумасшедшем бородатом русском, который ПРИДУМАЛ ФОРМУЛУ"
В таких случаях всегда советую подумать и понять, почему такой массив не нужен. CodeMonkey, ай-яй-яй А, если установить Sorted=true? В несортированном словаре-то поиск конечно неэффективен... В дельфи есть реализация каких угодно словарей.
Но, если версия дельфи древнее 2009, то придется городить хеш-таблицу ручками. |
|||
|
||||
| CODeRUS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 25.7.2007 Репутация: нет Всего: нет |
о. TDictionary.
пошел ставить 2009 Делфи. ради такого можно и обновиться! поставлю сразу 2010 дистилированный =) a вообще StringList не хотел потому как дополнительно переводить число в строку перед действиями нежелательно, в идеале все должно работать моментально. Надеюсь, что TDictionary поможет мне Большое спасибо, TDictionary работает довольно шустро. Думаю это именно то что мне было нужно)) Это сообщение отредактировал(а) CODeRUS - 15.2.2011, 02:22 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Лично у меня есть какое-то внутреннее предубеждение против этих новых классов. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Увы в Дельфи много чего нет. Как и в жизни. Всё нужно делать своими руками! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
||||
|
||||
| CodeMonkey |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Да проблем нет с тем что ты в новичках тему создал. Просто забавно, когда ты при этом оценки и выводы делаешь. Ну не совсем ручками. А брать из, скажем, JCL или DeCAL. Чего и автору советую, если в старых Delphi работать будет.
Лучше ставить Delphi XE - чем выше версия, тем больше исправлено багов. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
Минусуете - то хоть пишите почему. Мне тоже развиваться как то надо. Не всю же жизнь заблуждаться.
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Кстати, да - мне тоже интересно, почему так нельзя/неправильно. Уже довольно давно пользуюсь TList[i] и TStringList.Objects[i] как хранилищем для integer и cardinal. Никаких проблем не замечено... |
|||
|
||||
![]()
|
| Правила форума "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. |