Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] VBA в EXCEL не освобождается память (http://forum.oszone.net/showthread.php?t=265205)

navuhodonosor 30-07-2013 00:04 2193024

VBA в EXCEL не освобождается память
 
Доброго времени суток!

В общем проблема такая:

есть текстовый файл в котором 3000000 строк, мне нужно импортировать данные из файла, разбить каждую строку на столбцы (через разделитель) и поместить на листы excel в соответствии с условием;
я читаю файл построчно и запихиваю в 7 динамических массивов по критериям, затем размещаю каждый массив на листе и удаляю массив (erase mas);
но проблема в том, что объем памяти занимаемой excel все равно постоянно увеличивается, хотя после записи каждого массива на лист я сначала удаляю массив, а затем сохраняю книгу целиком, но память от этого не уменьшается, в итоге объем ОЗУ занимаемой EXCEL доходит до 2ГБ, хотя если замерить объем памяти который требуется для хранения заполненных массивов получается меньше 1 ГБ;


Я так понимаю EXCEL держит все данные в памяти. Как бы это обойти?

AlexVol 30-07-2013 09:35 2193123

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

navuhodonosor 30-07-2013 09:46 2193125

Пробовал, исполняется гораздо дольше и ещё ошибка в конце вылетает (ну это не исключаю своей корявости), но в итоге excel в памяти висит также большим куском.
Массивы использую для ускорения вставки в excel когда делаю range()=mymas вставляются данные раз в 10 быстрее чем писать в excel построчно.

Iska 30-07-2013 13:53 2193277

Цитата:

Цитата navuhodonosor
есть текстовый файл в котором 3000000 строк, »

Приведите образец файла в виде первых десятка-двух строк. Приведите Ваш код.

navuhodonosor 11-08-2013 20:16 2200022

Извините, что вышел из темы, просто уезжал на отдых.
Вообщем обошел проблему разбивкой на файлы, т.е. в итоговом файле только один критерий, как выяснилось больше и не надо было. Получилось 7 городов - 7 файлов, в памяти каждый не больше гига.
Спасибо всем.

Iska 12-08-2013 00:45 2200099

С массивными текстовыми файлами желательно работать как с базой данных.


Время: 20:04.

Время: 20:04.
© OSzone.net 2001-