|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
проблема в том, что при попытке загнать все данные из файла в массив типа вариант вылезает ошибка "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". ================================================== есть у кого-нить идеи как лучше обработать этот массив (мне надо кое какую сверку в нем провести на валидность данных и вывести косячные строки в файл протокола)? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 16:27 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
использовать надо excel 2007 и позднее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 16:49 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
и зачем вам массив то нужен? импортируйте в книгу экселевскую и там же вычиcляйте и экспорт потом в файл ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 16:50 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
загнать файл в табличку access и перелопатить там sql'ем не вариант? сильно сомневаюсь, что то, что вы хотите делать, sql не сумеет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 22:26 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Загони в Аксесс, а не в Эксель... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 22:31 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Tray, 80 столбцов--какова длина записи(access до 2000байт) 2гб=2 000 000 000/800 000=2500 б/запись --возможно хватит -- может как простой текстовик обработать вряд ли здесь время лимитирует больше потратите на получение порций -------- или из текстовика получить 20 текстовых порций и каждую обрабатывать по -отдельности -------- -------- если строки не однородны --есть строки заголовков, то явно надо обрабатывать как чистый текстовик =============== он вас кусочек текста и пример анализа ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 23:27 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Trayнадо кое какую сверку в нем провести на валидность данных и вывести косячные строки в файл протокола Вот этот момент поподробнее. Может, и не надо никаких массивов, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 23:48 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Залить в таблицу MSSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 00:34 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
начнем по порядку: 1) я и так использую эксель 2007 2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью. 3) файл представляет из себя по сути текстовик с разделителями в принципе умею юзать делфи, но не захлебнется ли он таким текстовиком с такой же ошибкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 07:21 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
и еще - я начал заморачиваться с макросом на вба потому, что хотел автоматизировать всю проверку и оставить ее на простых юзеров. а загружать в аксес или мускуль не хочу, это ж админы тока могут... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 07:27 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Tray2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью.Ерунда какая-то, не так грузишь значит, что конкретно не получается? Trayа загружать в аксес или мускуль не хочу, это ж админы тока могут...Задача разовая или регулярная? Образец текстовика можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 08:35 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
2) в аксес загружать пробовал еще перед созданием темы - тупо не загружается, опять же что-то с памятью. а сколько весит txt? в принципе умею юзать делфи, но не захлебнется ли он таким текстовиком с такой же ошибкой? есть мнение, что такой массив в памяти (т.е. через массив и т.д.) не нужно ворочать а загружать в аксес или мускуль не хочу, это ж админы тока могут... мускуль- может быть, а в акцесс может загружать любой, кто создал базу. у вас же, локально, установлен акцесс в составе офиса? тогда можно делать всё, что угодно ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:25 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
разобрался почему в аксес не грузилось - там что-то с названиями столбцов, удалил их и все норм грузанулось. сам файл весит 350 метров. аксес стоит у всех, но я думаю, не сложно ли для простых юзеров это будет... загрузка файла в аксес :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:46 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Задача регулярная, раз в месяц ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:46 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
Trayаксес стоит у всех, но я думаю, не сложно ли для простых юзеров это будет... загрузка файла в аксес :)дык, для сего напишите пользовательский интерфейс. А Аксесс необязательно нужен на компе для этого, библиотеки для работы с mdb-файлами есть по умолчанию в ОС ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:52 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
TrayЗадача регулярная, раз в месяцтогда можно и админов напрячь, чтобы скриптик на сервере написали ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 10:53 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
сам файл весит 350 метров. такой размер акцесс с радостью проглотит, ещё и уменьшит его внутри себя не сложно ли для простых юзеров это будет... загрузка файла в аксес можно так сделать, что юзер даже не будет знать, что что-то в акцессе делается можно всё сделать через vba/ado db в экселе, и юзер будет просто жмакать кнопки, а макрос уже будет закачивать/крутить/выкачивать данные в акцессе акцесс-то, по сути, тут нужен, чтобы всю логику по обработке мега-таблицы переложить на него ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 11:09 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
авторможно всё сделать через vba/ado db в экселе, и юзер будет просто жмакать кнопки, а макрос уже будет закачивать/крутить/выкачивать данные в акцессе это вообще сложно сделать? а то я vba плохонько знаю, так, базис ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 12:21 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
не могли бы подсказать литературу, в которой подробно описано как через экселевский макрос работать с access'ом? как я вижу это себе - создать формочку в экселевском файле, кинуть туда кнопку, по нажатию на которую запустится макрос, загружающий csv-файл в access (в теневом режиме), выполняющий определенные запросы в этой импортированной таблице и выводящий результаты этих запросов в экселевский файл ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 13:06 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
насчёт лит-ры не в курсе, но многое можно нагуглить по словам "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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2013, 13:51 |
|
Как обработать огромный массив данных в csv-файле (800000строк, 80 столбцов) через VBA?
|
|||
---|---|---|---|
#18+
спасибо всем за советы - решил в аксесе форму наваять. настроил импорт файла в базу с нужными правилами, и потом просто по нажатию кнопки импортирую базу в аксес, ну и сделал там же необходимые запросы-проверки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 09:50 |
|
|
start [/forum/topic.php?fid=60&msg=38378060&tid=2156786]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 417ms |
0 / 0 |