![]() |
VBA в EXCEL не освобождается память
Доброго времени суток!
В общем проблема такая: есть текстовый файл в котором 3000000 строк, мне нужно импортировать данные из файла, разбить каждую строку на столбцы (через разделитель) и поместить на листы excel в соответствии с условием; я читаю файл построчно и запихиваю в 7 динамических массивов по критериям, затем размещаю каждый массив на листе и удаляю массив (erase mas); но проблема в том, что объем памяти занимаемой excel все равно постоянно увеличивается, хотя после записи каждого массива на лист я сначала удаляю массив, а затем сохраняю книгу целиком, но память от этого не уменьшается, в итоге объем ОЗУ занимаемой EXCEL доходит до 2ГБ, хотя если замерить объем памяти который требуется для хранения заполненных массивов получается меньше 1 ГБ; Я так понимаю EXCEL держит все данные в памяти. Как бы это обойти? |
А обойтись без массивов? Зачем занимать хренову кучу памяти, если все равно разбор идет построчно?
|
Пробовал, исполняется гораздо дольше и ещё ошибка в конце вылетает (ну это не исключаю своей корявости), но в итоге excel в памяти висит также большим куском.
Массивы использую для ускорения вставки в excel когда делаю range()=mymas вставляются данные раз в 10 быстрее чем писать в excel построчно. |
Цитата:
|
Извините, что вышел из темы, просто уезжал на отдых.
Вообщем обошел проблему разбивкой на файлы, т.е. в итоговом файле только один критерий, как выяснилось больше и не надо было. Получилось 7 городов - 7 файлов, в памяти каждый не больше гига. Спасибо всем. |
С массивными текстовыми файлами желательно работать как с базой данных.
|
Время: 20:04. |
Время: 20:04.
© OSzone.net 2001-