Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/88: Рейтинг темы: голосов - 88, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 07.05.2013
Сообщений: 34

Как разбить огромный csv файл

30.12.2016, 14:33. Показов 20345. Ответов 51

Студворк — интернет-сервис помощи студентам
Добрый день, помогите решить задачу: есть ексель файл на 5000 строк и есть огромный csv файл на 1,16 Гбайт, нужно найти совпадающие значения в этих файлах пробовал через функцию ВПР находится все до 1000000 строк, а больше ексель не показывает так как стоит ограничение в этом пределе, а сам csv файл предположительно на 50000000 строк я хочу его разбить на 50 меньших файлов и по отдельности произвести поиск совпадающих строк, как это можно сделать? Или подскажите пожалуйста другой способ найти совпадающие строки с моим маленьким файлом и этим огромнейшим csv файлом
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2016, 14:33
Ответы с готовыми решениями:

Как разбить файл на две части, разархивировать и изменить вторую часть, а потом собрать файл обратно?
Здравствуйте! Хочу поднять тему Ципиховича Эндрю (в праве поднять тему отказано: новый вопрос, новая тема - примечание модератора). ...

Разделить огромный txt файл на куски и поместить в различные книги excel
Здравствуйте, уважаемые форумчане! У меня есть огромный файл txt, который нужно разделить на части и эти части поместить в книги excel....

Как сохранить в csv utf8 кодировки файл из exсel?
Как сохранить в csv utf8 кодировки файл из exel?

51
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
12.01.2017, 14:55
Студворк — интернет-сервис помощи студентам
Можно сформировать базу данных недействительных паспортов и в Excel, занимать по объему ~ 600Мб. Сократить можно и еще если записи хранить в бинарном варианте.
0
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,083
12.01.2017, 15:04
Любым скриптовым языком.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
12.01.2017, 15:54
Вообще по уму должен был бы быть онлайнсервис под это дело, чтоб оперативно проверялось. Ибо даже если каждую ночь качать свежих 1.5 гига паспортов - всё равно можно что-то пропустить.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
12.01.2017, 16:41
Цитата Сообщение от Hugo121 Посмотреть сообщение
должен был бы быть онлайнсервис
Так он на сайте есть, ссылку Казанский дал.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
12.01.2017, 17:51
Я туда не заходил, подумал что там только файл
Этот сервис не то, что я бы хотел видеть, это только по одному и ещё капча...
0
1 / 1 / 0
Регистрация: 07.05.2013
Сообщений: 34
13.01.2017, 00:02  [ТС]
Hugo121, toiai,
Ребят вы в каком екселе делали, у меня дома 2007 и вот результат этого макроса, как бы он работает, в екселе пишет что не отвечает она явно с большими данными работает, но выдает только такое, хотя скопировал с 1.csv строку которая там есть

Могли бы вы скинуть на почту aroma4s@yandex.ru ваш рабочий файл, а то я даже не понимаю что не так
Миниатюры
Как разбить огромный csv файл  
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
13.01.2017, 09:27
Лучший ответ Сообщение было отмечено aroma4s как решение

Решение

Ну нормально всё, работает
Чтоб не подвисало и можно было бы параллельно читать форумы, и видеть процесс - замените всё на это:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
 
Sub tt()
    Dim a, i&, s$, d As Object
 
    a = ActiveSheet.UsedRange.Columns(3).Resize(, 2).Value
    a(1, 1) = "Результат проверки по базе"
    Set d = CreateObject("scripting.dictionary"): d.comparemode = 1
 
    For i = 2 To UBound(a)
        d.Item(Format(a(i, 1), "0000") & "," & Format(a(i, 2), "000000")) = i
        a(i, 1) = Empty
    Next
 
 i = 0
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(ThisWorkbook.Path & "\1.csv", 1)
        Do Until .AtEndOfStream
            s = .Readline: i = i + 1
            If d.exists(s) Then a(d.Item(s), 1) = "негодный паспорт"
            If i Mod 100 = 0 Then
                Application.StatusBar = "Проверка паспортов, обработка строки файла " & i ' чтоб видеть процесс
                DoEvents
            End If
        Loop
    End With
 
    [h1].Resize(UBound(a), 1) = a
    Application.StatusBar = False
End Sub
Обратите внимание на нижнюю рамку окна Экселя при работе скрипта. Если мигает слишком быстро - можно mod 100 заменить на mod 1000
0
1 / 1 / 0
Регистрация: 07.05.2013
Сообщений: 34
13.01.2017, 09:55  [ТС]
Hugo121, ну список же результатов не появляется, как он у вас воще выглядит?
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
13.01.2017, 10:03
Как не появляется? Вижу ведь новую шапку и у одного паспорта запись что он негодный.
Ну а если все годные - то только шапка и будет.
Ну можно конечно всем годным записать что они годные - тогда вместо строки
a(i, 1) = Empty
напишите в коде
a(i, 1) = "годный"
0
1 / 1 / 0
Регистрация: 07.05.2013
Сообщений: 34
13.01.2017, 11:56  [ТС]
Hugo121,жееесть) спасибо тебе огромное все заработало, ты освободил меня от кучи рутиных действий)) а можешь скинуть теорию по этим кодам, хочу разобраться что как работает)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
13.01.2017, 12:49
Вся теория давно описана Уокенбахом например.
Но вопрос про стандарт этих номеров так и остался открытым - т.ч. я за возможный брак в работе не отвечаю.
0
13.01.2017, 13:28

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2017, 13:28

Как сохранить VBA-массив в CSV-файл без Excel
Как можно сохранить VBA-массив в CSV-файл без использования Excel? Сейчас я сначала вставляю данные из VBA-массива в Excel, а затем...

Как разбить большой файл сохранив макросы во всех частях?
Есть необходимость разбить этот файл на несколько файлов (около 50), причём с сохранением в каждом файле макросов и форм. Соответсвенно...

Как разбить CSV файл на отдельные файлы
Всем привет, кто может подсказать решение, как разбить CSV файл состоящий из 100000 строк, на разные CSV файлы по такому принципу: в...

Запись в CSV-файл из массива. Не является форматом csv!
В общем искал работу... Дали тестовое написать парсер для сайта с выводом информации в csv-файл. Всё написал, сбросил, пришёл ответ что у...

Огромный EXE Файл , Нужна помошь
И так , ситуация такая , есть программа , которая берет файл(любой) и записывает его в конце другой программы(отныне шаблон) , которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru