|
|
|
| Здравствуйте, помогите разобраться как можно быстро сохранить большой объем данных в текстовый файл:
Почему спрашиваю:
Если исп цикл для диапазона А50:А1048576 - это займет порядка 8с, а если исп
X = Range("A50:A1048576") - то менее 1с.
Плюс сохранение в файл
FNAME = "C:\TEXT_TXT\VB_txt.txt"
FNUM = FreeFile
Open FNAME For Binary Access Write As FNUM
Put FNUM, , X
Close FNUM
И все файл готов
Единственная проблема в том , что если открыть в текстовом редакторе увидим абра-кадабру, а хотелось бы видеть значения из диапазона А50:А1048576
Можно ли по аналогии, сделать запись файла где будут отражены именно значения данных( разделенных запятой к примеру), а не бинарный код...
Меняю (Binary Access Write) на Output, а (Put) на Write
И…… НЕ работает……
Не могу понять как переменную X преобразовать в строку.....
Спасибо. | |
|
| |
|
|
|
| может при открытии шрифт выбрать - Terminal | |
|
| |
|
|
|
| А как это поможет????
Поясню
1. работаю в VB
2. В диапазоне А50:А1048576 - числа
3. Необходимо их записать в текст файл
Можно заполнить массив через цикл, потом по средствам Join преобразовать его в строку и далее записать в файл.... Это работает...
Но хочется ускорить процесс, не применять цикл
Нашел как быстро переменной присвоить весь диапазон данных
X = Range("A50:A1048576")
И вся проблема преобразовать переменную X в строковую переменную. | |
|
| |
|
|
|
|
| Про подобное ограничение мне говорили, но вот что интересно....
Если а() массив, то
MyString = Join(а, [","]) работает и вроде без ограничения....
Если А=Range, то
MyString = Join(А, [","]) не работает
Завтра перепроверю, а то уже поздновато, но помоему так.... И это странно | |
|
| |
|
|
|
| MyString = str(Join(А, [","])) ? а так -не работает
или msgbox Join(А, [","]) - не работает?
можно сохранять порционно по 32000 строк | |
|
| |