powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
21 сообщений из 21, страница 1 из 1
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377616
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема в том, что при попытке загнать все данные из файла в массив типа вариант вылезает ошибка "Out of Memory"

потом я подумал, что может буду загонять данные в массив по 50000 строк, потом присваивать массиву значение Nothing или Empty, после чего загонять туда следующие 50000 строк, но это также приводит к той же ошибке.

объявление массива
Dim varArray As Variant

помещение данных в массив
varArray = ActiveWorkbook.Worksheets(1).Range("A2:CD50000").Value

потом Set varArray = Nothing и снова
varArray = ActiveWorkbook.Worksheets(1).Range("A50001:CD100000").Value

где-то на 250000-ой строке вылазает ошибка "Out of Memory".
==================================================

есть у кого-нить идеи как лучше обработать этот массив (мне надо кое какую сверку в нем провести на валидность данных и вывести косячные строки в файл протокола)?
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377641
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использовать надо excel 2007 и позднее
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377645
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и зачем вам массив то нужен?
импортируйте в книгу экселевскую и там же вычиcляйте и экспорт потом в файл
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377941
t0lix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
загнать файл в табличку access и перелопатить там sql'ем не вариант? сильно сомневаюсь, что то, что вы хотите делать, sql не сумеет
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377944
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загони в Аксесс, а не в Эксель...
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377970
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tray,

80 столбцов--какова длина записи(access до 2000байт)

2гб=2 000 000 000/800 000=2500 б/запись --возможно хватит

--

может как простой текстовик обработать
вряд ли здесь время лимитирует
больше потратите на получение порций
--------
или
из текстовика получить 20 текстовых порций и каждую обрабатывать по -отдельности
--------
--------
если строки не однородны --есть строки заголовков, то явно надо обрабатывать как чистый текстовик

===============
он вас кусочек текста и пример анализа
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377981
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Trayнадо кое какую сверку в нем провести на валидность данных и вывести косячные строки в файл протокола
Вот этот момент поподробнее. Может, и не надо никаких массивов, а?
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38377999
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Залить в таблицу MSSQL?
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378060
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
начнем по порядку:
1) я и так использую эксель 2007
2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью.
3) файл представляет из себя по сути текстовик с разделителями
в принципе умею юзать делфи, но не захлебнется ли он таким текстовиком с такой же ошибкой?
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378062
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще - я начал заморачиваться с макросом на вба потому, что хотел автоматизировать всю проверку и оставить ее на простых юзеров.

а загружать в аксес или мускуль не хочу, это ж админы тока могут...
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378090
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tray2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью.Ерунда какая-то, не так грузишь значит, что конкретно не получается?
Trayа загружать в аксес или мускуль не хочу, это ж админы тока могут...Задача разовая или регулярная?

Образец текстовика можно?
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378199
t0lix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью.
а сколько весит txt?
в принципе умею юзать делфи, но не захлебнется ли он таким текстовиком с такой же ошибкой?
есть мнение, что такой массив в памяти (т.е. через массив и т.д.) не нужно ворочать
а загружать в аксес или мускуль не хочу, это ж админы тока могут...
мускуль- может быть, а в акцесс может загружать любой, кто создал базу. у вас же, локально, установлен акцесс в составе офиса? тогда можно делать всё, что угодно
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378243
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался почему в аксес не грузилось - там что-то с названиями столбцов, удалил их и все норм грузанулось.

сам файл весит 350 метров.

аксес стоит у всех, но я думаю, не сложно ли для простых юзеров это будет... загрузка файла в аксес :)
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378245
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача регулярная, раз в месяц
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378257
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Trayаксес стоит у всех, но я думаю, не сложно ли для простых юзеров это будет... загрузка файла в аксес :)дык, для сего напишите пользовательский интерфейс. А Аксесс необязательно нужен на компе для этого, библиотеки для работы с mdb-файлами есть по умолчанию в ОС
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378259
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TrayЗадача регулярная, раз в месяцтогда можно и админов напрячь, чтобы скриптик на сервере написали
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378296
t0lix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам файл весит 350 метров.
такой размер акцесс с радостью проглотит, ещё и уменьшит его внутри себя
не сложно ли для простых юзеров это будет... загрузка файла в аксес
можно так сделать, что юзер даже не будет знать, что что-то в акцессе делается
можно всё сделать через vba/ado db в экселе, и юзер будет просто жмакать кнопки, а макрос уже будет закачивать/крутить/выкачивать данные в акцессе
акцесс-то, по сути, тут нужен, чтобы всю логику по обработке мега-таблицы переложить на него
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378428
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторможно всё сделать через vba/ado db в экселе, и юзер будет просто жмакать кнопки, а макрос уже будет закачивать/крутить/выкачивать данные в акцессе
это вообще сложно сделать? а то я vba плохонько знаю, так, базис
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378528
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не могли бы подсказать литературу, в которой подробно описано как через экселевский макрос работать с access'ом?

как я вижу это себе - создать формочку в экселевском файле, кинуть туда кнопку, по нажатию на которую запустится макрос, загружающий csv-файл в access (в теневом режиме), выполняющий определенные запросы в этой импортированной таблице и выводящий результаты этих запросов в экселевский файл
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38378609
t0lix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насчёт лит-ры не в курсе, но многое можно нагуглить по словам "excel vba access adodb"

типа
http://www.vbforums.com/showthread.php?565991-Connect-to-Access-2007-from-Excel-2007-VBA

или, относительно импорта
http://stackoverflow.com/questions/11275356/vba-procedure-to-import-csv-file-into-access
...
Рейтинг: 0 / 0
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
    #38379512
Tray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо всем за советы - решил в аксесе форму наваять.
настроил импорт файла в базу с нужными правилами, и потом просто по нажатию кнопки импортирую базу в аксес, ну и сделал там же необходимые запросы-проверки данных.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]