Как разбить огромный csv файл - VBA
Формулировка задачи:
Добрый день, помогите решить задачу: есть ексель файл на 5000 строк и есть огромный csv файл на 1,16 Гбайт, нужно найти совпадающие значения в этих файлах пробовал через функцию ВПР находится все до 1000000 строк, а больше ексель не показывает так как стоит ограничение в этом пределе, а сам csv файл предположительно на 50000000 строк я хочу его разбить на 50 меньших файлов и по отдельности произвести поиск совпадающих строк, как это можно сделать? Или подскажите пожалуйста другой способ найти совпадающие строки с моим маленьким файлом и этим огромнейшим csv файлом
Решение задачи: «Как разбить огромный csv файл»
textual
Листинг программы
- Sub qwert()
- Dim sl: Set sl = CreateObject("scripting.dictionary") '
- Dim r, ri, lr, m(), t
- '''*********************просто заполнение уникальными значениями.
- 'Randomize
- 'For r = 1 To 5000
- ' Do
- ' t = Int(1000001 * Rnd)
- ' Loop While sl.exists(t)
- ' sl(t) = r
- 'Next r
- ' ActiveSheet.[a1].Resize(sl.Count) = Application.Transpose(sl.keys)
- ''***************************************
- With ActiveSheet
- lr = .Cells(.Rows.Count, 1).End(xlUp).Row
- m = .[a1].Resize(lr, 2).Value
- For r = 1 To 5000
- sl(m(r, 1)) = r 'запоминаем значение и номер строки в словарь
- Next r
- 'словарь заполнен уникальными. дальше работа с файлом.
- 'Проверять не на чём. моделировать лениво. Примерно так:
- Open "c:\temp\myfile1.csv" For Input As #1 'огромный файл
- 'цикл выполняется, пока конец файла не достигнут
- Do Until EOF(1)
- 'при каждом вызове оператора Line Input он записывает в
- 'переменную новою строку
- Line Input #1, t
- ' тут с переменной t возможно надо что-то сделать
- t = t
- ' и потом проверить наличие в словаре
- If sl.exists(t) Then ' если в словаре есть
- ' например можно поставить метку в массив
- ri = sl(t) '
- m(ri, 2) = "есть такое" '
- End If
- Loop
- Close
- .[a1].Resize(lr, 2) = m ' массив с результатом вывалить на лист
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д