|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.09.2011, 09:58 | #21 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Потерял суть вопроса.. и вникать некогда (да и целиком код не виден). но думаю, что это тактически неправильно - тут не нужен долгий цикл в цикле.
Смотрите - у Вас в словаре хранятся день & месяц и его номер в массиве b, а вероятно в другом словаре тоже самое с массивом c. Тогда быстрее будет (по аналогии) создать под размер словаря b массив e, затем перебрать циклом словарь b и для каждой даты найти во втором словаре место пары в массиве c , и вот тогда уже сделать Код:
Быстро. Или, если словарь один, связанный с массивом b, то можно циклом пройтись по массиву c, сверяя даты с словарём, т.е. сразу находим совпадения/несовпадения с b.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 26.09.2011 в 10:15. |
26.09.2011, 14:02 | #22 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
|
26.09.2011, 14:11 | #23 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Для таких больших файлов применяются совсем другие алгоритмы (вплоть до считывания частями) Тут уж вам вряд ли бесплатно сделают решение. (точнее, парни у нас молодцы, и не такое сделают, но имеет смысл вам их потом отблагодарить - ибо кода много получится) Могут быть файлы ещё больше по объёму? |
|
26.09.2011, 14:20 | #24 | |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Так я там ниже ведь писал:
Цитата:
Если и так не поместится - тогда частями вероятно нужно, те, кто работал с такими огромными файлами точнее подскажут...
webmoney: E265281470651 Z422237915069 R418926282008
|
|
26.09.2011, 14:24 | #25 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
|
26.09.2011, 14:25 | #26 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
|
26.09.2011, 14:34 | #27 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Вот только как определить, какой массив будет нужен под результат...
При подходе с чтением файла в массив мы сразу имеем количество строк, а если читать построчно - то имеем только в конце. Как сделать идеально - я не знаю. Я один раз помню читал файл 2 раза - сперва просто подсчитывал количество строк, потом по этому количеству создавал нужный массив, потом снова читал файл уже с анализом строк. Ещё есть вариант увеличивать массив динамически через Redim Preserve - но думаю на большом объёме будет тормозить.
webmoney: E265281470651 Z422237915069 R418926282008
|
04.10.2011, 14:21 | #28 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
Еще раз спасибо, Ув. Hugo121!
Все сделал на основе Вашего кода... В итоге разбил файл на несколько по одному признаку и поочередное считывание. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан динамический массив строк, вывести все слова начинающиеся с большой буквы C++ builder | Memphi[s] | Помощь студентам | 0 | 02.03.2011 16:34 |
Большой объем данных | matanga | Microsoft Office Excel | 4 | 09.12.2010 13:14 |
SQL - обьединение и управление несколькими базами данных | MarinN | SQL, базы данных | 1 | 08.11.2010 10:09 |
Как виделить большой кусок памяти под массив? | Tania | Мультимедиа в Delphi | 7 | 23.04.2010 01:53 |
Поиск min/max данных с несколькими условиями - нужна помощь! | /nort/ | Microsoft Office Excel | 3 | 16.03.2008 00:13 |