Страница: 1 |
Вопрос: Быстрая запись в файл | Добавлено: 01.06.04 13:45 |
Автор вопроса: ![]() |
Я получаю данные с некоторого устройства и мне нужно записать их в файл. Если прроизводить запись побайтово (print #n, byte) то на запись всех 128Кб уходит довольно значительное время (порядка 10 сек). Существует ли возможность в ВБ сохранять поблочно (типа указал массив и он целиком закрылся). Или другие варианты ускорения процесса. Вот текущий код Open FileName For Output As #14
dt = ADC100_ReadRegister3(hADC100) |
Ответы | Всего ответов: 13 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 166433794 Вопросов: 9 Ответов: 143 |
Профиль | Цитата | #1 | Добавлено: 01.06.04 14:06 |
можно юзать апи WriteFile ну к нему и CreateFile,
если нужно описуху по етим АПИ могу кинуть |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 138809268 Вопросов: 15 Ответов: 14 |
Профиль | Цитата | #2 | Добавлено: 01.06.04 14:12 |
Кинь плз. Только лучше с примером, а то я глянул через API Text Viewer - там ничего не понятно |
Номер ответа: 3 Автор ответа: ![]() ![]() ICQ: 166433794 Вопросов: 9 Ответов: 143 |
Профиль | Цитата | #3 | Добавлено: 01.06.04 14:16 |
шас скину, только с МСДН`А нужно выдрать кусочек ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 166433794 Вопросов: 9 Ответов: 143 |
Профиль | Цитата | #4 | Добавлено: 01.06.04 14:40 |
блин, трабл, нужно вызвать API и чтоб ВБ не матерился на то что там параметры неправильные,
я на С++ все делал, было ок, а он матом гнет мне что там Null поставить, ладно щас что-то придумаю ... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ICQ: 138809268 Вопросов: 15 Ответов: 14 |
Профиль | Цитата | #5 | Добавлено: 01.06.04 14:44 |
Если геморройно можешь выслать и C++ я попробую разобраться, было опыт когда-то ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 166433794 Вопросов: 9 Ответов: 143 |
Профиль | Цитата | #6 | Добавлено: 01.06.04 14:46 |
ок, на С++ скину щас |
Номер ответа: 7 Автор ответа: ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ICQ: 138809268 Вопросов: 15 Ответов: 14 |
Профиль | Цитата | #8 | Добавлено: 01.06.04 15:13 |
ок засылай на j-j-post@mail.ru |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ICQ: 166433794 Вопросов: 9 Ответов: 143 |
Профиль | Цитата | #10 | Добавлено: 01.06.04 15:48 |
да, кстати так тоже можно, я забыл даже, я просто последний год на VC++ пишу ... |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ICQ: 138809268 Вопросов: 15 Ответов: 14 |
Профиль | Цитата | #11 | Добавлено: 01.06.04 15:58 |
я чего-то не понимаю, как надо делать правильнее. Пусть у нас есть массив b(100) со значениями, его что можно целиком скинуть Open "c:\test.txt" For Binary Access Write As #14 так не выходит ВБ орёт "Type mismatch" как правильнее
|
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() Вопросов: 2 Ответов: 23 |
Профиль | Цитата | #12 | Добавлено: 01.06.04 16:02 |
Не Print, а Put |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ICQ: 138809268 Вопросов: 15 Ответов: 14 |
Профиль | Цитата | #13 | Добавлено: 01.06.04 16:44 |
Аааа, понятно, совсем слепой стал SeMa & digitron СПАСИБО И RESPECT. |
Страница: 1 |
|