Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] VBA в EXCEL не освобождается память

Ответить
Настройки темы
VBA - [решено] VBA в EXCEL не освобождается память

Аватара для navuhodonosor

Новый участник


Сообщения: 35
Благодарности: 5


Конфигурация

Профиль | Отправить PM | Цитировать


Доброго времени суток!

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

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


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

Отправлено: 00:04, 30-07-2013

 

Новый участник


Сообщения: 40
Благодарности: 19

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:35, 30-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для navuhodonosor

Новый участник


Сообщения: 35
Благодарности: 5

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:46, 30-07-2013 | #3


Ветеран


Contributor


Сообщения: 27627
Благодарности: 8084

Профиль | Отправить PM | Цитировать


Цитата navuhodonosor:
есть текстовый файл в котором 3000000 строк, »
Приведите образец файла в виде первых десятка-двух строк. Приведите Ваш код.

Отправлено: 13:53, 30-07-2013 | #4


Аватара для navuhodonosor

Новый участник


Сообщения: 35
Благодарности: 5

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:16, 11-08-2013 | #5


Ветеран


Contributor


Сообщения: 27627
Благодарности: 8084

Профиль | Отправить PM | Цитировать


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

Отправлено: 00:45, 12-08-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] VBA в EXCEL не освобождается память

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Объекты в VBA (Excel) zena Программирование и базы данных 9 18-02-2012 20:36
VBA - VBA Excel помогите решить Мария74 Программирование и базы данных 1 19-02-2011 12:58
Разное - Задача Excel VBA JON4 Microsoft Office (Word, Excel, Outlook и т.д.) 8 12-12-2010 18:40




 
Переход