Страница: 1 |
Я получаю данные с некоторого устройства и мне нужно записать их в файл. Если прроизводить запись побайтово (print #n, byte) то на запись всех 128Кб уходит довольно значительное время (порядка 10 сек). Существует ли возможность в ВБ сохранять поблочно (типа указал массив и он целиком закрылся). Или другие варианты ускорения процесса. Вот текущий код Open FileName For Output As #14 dt = ADC100_ReadRegister3(hADC100)
я чего-то не понимаю, как надо делать правильнее. Пусть у нас есть массив b(100) со значениями, его что можно целиком скинуть Open "c:\test.txt" For Binary Access Write As #14 так не выходит ВБ орёт "Type mismatch" как правильнее Аааа, понятно, совсем слепой стал )) заработало SeMa & digitron СПАСИБО И RESPECT. Страница: 1 |
Вопрос: Быстрая запись в файл
Добавлено: 01.06.04 13:45
Автор вопроса: Mikhael | ICQ: 138809268
Dim dt As Integer
For n = 1 To 65536*2
Print #14, dt
Next n
Close #14
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #1
Добавлено: 01.06.04 14:06
можно юзать апи WriteFile ну к нему и CreateFile,
если нужно описуху по етим АПИ могу кинуть
Номер ответа: 2
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #2
Добавлено: 01.06.04 14:12
Кинь плз. Только лучше с примером, а то я глянул через API Text Viewer - там ничего не понятно
Номер ответа: 3
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #3
Добавлено: 01.06.04 14:16
шас скину, только с МСДН`А нужно выдрать кусочек
Номер ответа: 4
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #4
Добавлено: 01.06.04 14:40
блин, трабл, нужно вызвать API и чтоб ВБ не матерился на то что там параметры неправильные,
я на С++ все делал, было ок, а он матом гнет мне что там Null поставить, ладно щас что-то придумаю ...
Номер ответа: 5
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #5
Добавлено: 01.06.04 14:44
Если геморройно можешь выслать и C++ я попробую разобраться, было опыт когда-то
Номер ответа: 6
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #6
Добавлено: 01.06.04 14:46
ок, на С++ скину щас
Номер ответа: 7
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #7
Добавлено: 01.06.04 15:08
unsigned long i;
char fBuffer[10]="abcdefghi";
HANDLE hFile;
hFile = CreateFile("test.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
WriteFile(hFile,fBuffer,10,&i,NULL);
CloseHandle(hFile);
блин, опись огромная очень, разве что хтмлкой слать
Номер ответа: 8
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #8
Добавлено: 01.06.04 15:13
ок засылай на j-j-post@mail.ru
Номер ответа: 9
Автор ответа:
digitron
Вопросов: 2
Ответов: 23
Профиль | | #9
Добавлено: 01.06.04 15:36
Ребят, зачем так усложнять?
Mikhael, тебе что нужно? Сохранить байтовый массив?
Используй:
Open FileName For Binary Access Write As #14
Put #14, , ADC100_ReadRegister3
Close #14
работает - доли секунды. ни API, ни C (тем более ++) - не нужны...
Номер ответа: 10
Автор ответа:
SeMa
ICQ: 166433794
Вопросов: 9
Ответов: 143
Профиль | | #10
Добавлено: 01.06.04 15:48
да, кстати так тоже можно, я забыл даже, я просто последний год на VC++ пишу ...
Номер ответа: 11
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #11
Добавлено: 01.06.04 15:58
Print #14, , b()
Close #14
Номер ответа: 12
Автор ответа:
digitron
Вопросов: 2
Ответов: 23
Профиль | | #12
Добавлено: 01.06.04 16:02
Не Print, а Put
Номер ответа: 13
Автор ответа:
Mikhael
ICQ: 138809268
Вопросов: 15
Ответов: 14
Профиль | | #13
Добавлено: 01.06.04 16:44