Страницы: Пред. 1 2 3 4
RSS
Как отсортировать 5 миллионов строк?
 
Цитата
Jack Famous написал:
можно использовать Len=32767 по-умолчанию,
Всегда так делаю. По нынешним временам такой буфер - это мизер. К сожалению, VBA не развивается. :(  
Владимир
 
Цитата
sokol92: По нынешним временам такой буфер - это мизер
я же правильно понимаю, что создание стека такого размера ограничивается процедурой? То есть ничего потом возвращать не надо

Цитата
sokol92: К сожалению, VBA не развивается
а уж мне-то как жаль - у меня вся автоматизация на нём построена (плюс понимание архитектуры БД). Но ничего — есть и другие возможности  ;)

OFF: большинство мнений по поводу VBA сводятся к тому, что он мёртвый и/или малофункциональный. Ну ХЗ - для меня одно то, что через него можно управлять системой (в том числе Shell и FSO) уже существенно раздвигает границы. Даже с базовым Excel'евским набором это ОЧЕНЬ крутая и мощная штука  :idea:

Excel представляет собой огромную "песочницу", а VBA —"экскаватор" в ней  :D
Изменено: Jack Famous - 01.07.2020 15:47:34
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
sokol92, Владимир, большое спасибо. Курочка по зёрнышку клюёт :)
Цитата
Jack Famous написал:
а VBA —"экскаватор" в ней
А если перейти на С++, как Виталий, то будет целый горнодобывающий комплекс, где Excel будет такой, вспомогательной деталькой :)
 
Цитата
Андрей VG: Excel будет такой, вспомогательной деталькой
более того — Excel, в данном случае, это мальчик с лопаткой рядом с экскаватором  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Андрей VG написал:
целый горнодобывающий комплекс,
некогда ввести полностью в строй, пока ввел работы
Цитата
Jack Famous написал:
экскаватором
.
Сортировка стандартная.
Про особую сортировку нужны точные условия, как сортируем, как число, как текст, еще как-то.
«Бритва Оккама» или «Принцип Калашникова»?
 
Время 2.5 сек.
Итого почти в 2 раза прирост. Не хватает времени пропилить WinApi c максимальной отдачей. Считаю что еще можно добавить, но уже не в разы. Плюс использование памяти по минималке, ориентируюсь на большие файлы размером с оперативку.
Изменено: bedvit - 03.07.2020 00:05:29
«Бритва Оккама» или «Принцип Калашникова»?
 
Добавил себе в библиотеку.
Загрузить + отсортировать (бинарная сортировка, локаль, при необходимости добавлю в след  версии) + удалить дубликаты + выгрузить в другой txt-файл размером 1Гб, 4 млн. строк. = 3 сек.
Как использовать:
1. Открыть xll
2. Написать код VBA
Код
Sub Test()
Debug.Print CreateObject("BedvitCOM.VBA").SortDeleteDuplicateRowsCSVansi("C:\CSV_1_GB.csv", "C:\CSV_1_GB_out.csv", 0, 1, 0) ' sort file 1Gb
End Sub
Изменено: bedvit - 04.07.2020 23:47:31
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, браво  :idea:
Наши полномочия здесь всё
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
:D
«Бритва Оккама» или «Принцип Калашникова»?
 
Update 16/07/2020 - пропилино WinApi .
1. Добавлена локализация для любой Страны/Языка
2. Теперь обработка txt-файл размером 1Гб, 4 млн. строк. = 1,59 сек.
Подробнее...
Изменено: bedvit - 16.07.2020 16:01:01
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit: обработка txt-файл размером 1Гб, 4 млн. строк. = 1,59 сек.
О Х Р Е Н Е Т Ь  8-0
моё почтение  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
24/07/2020 v1.0.2.9
Добавил флаг FileFlagNoBuffering - отключение системного кеширования чтения/записи файла 0/1 (по умолчанию: 0 - кеширование не отключается)
Использовать в случаях, когда размер файла сравним с размером ОЗУ (не создается доп. буфера файловой системы, за счет чего меньше пишется в файл подкачки и в разы быстрее выполняется код).
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: Пред. 1 2 3 4
Наверх