powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Считать текстовик в recordset с одним полем
3 сообщений из 3, страница 1 из 1
Считать текстовик в recordset с одним полем
    #39705407
Sema9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет

Есть у меня решенная на VBA задача: пропарсил текстовый файл, часть инфы выгружаю на лист Excel, часть в другой текстовый файл - целевой.
Текстовая часть задачи решена путем загрузки Open-ом исходного текстовика в массив: один элемент массива - одна строка.
Далее проход по массиву. Работу с Excel-ем пропускаем. Текстовая часть целевого файла запихивается в переменную типа string с разделителями строк Chr(13) и Print-ом сбрасывается в целевой текстовик
Программа работает, но медленно: до 8.5 часов на i3 с 8 Гб мозгов - в исходном текстовике до 1.5 млн. строк. У юзеров с железом намного мрачнее
Предполагаю, что если заменить массив и строку на recordset-ы, будет работать быстрее. Во всяком случае, хочу поставить эксперимент. Но не знаю, как одной командой считать текстовик без заголовков в recordset
Структура исходного текстовика замысловатая, с тройными заголовками, данные в строках перекрываются по вертикали (фрагмент исходного текстовика прилагаю). Поэтому задача решается путем тяжелого парсигна. Для этого хочу считать текстовик в recordset с одним полем и анализировать записи исходного recordset-а как элементы массива, а целевой recordset заполнить записями для целевого текстовика
Полезной информации в исходном текстовике до 25%

Подскажите пожалуйста, как на VBA одной командой:
1. Считать текстовик в recordset с одним полем
2. Сбросить recordset в текстовик
...
Рейтинг: 0 / 0
Считать текстовик в recordset с одним полем
    #39705413
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sema9Текстовая часть задачи решена путем загрузки Open-ом исходного текстовика в массив: один элемент массива - одна строка.Думаю, что узкое место тут - попытка загрузить весь огромный объем информации одновременно в память. Рекордсет тут мало поможет.

Почему бы не обрабатывать файл построчно (или порциями), постепенно читая его с диска и не пытаясь запихнуть в память целиком?
...
Рейтинг: 0 / 0
Считать текстовик в recordset с одним полем
    #39705415
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Считать текстовик в recordset с одним полем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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