Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Быстрая запись в файл Добавлено: 01.06.04 13:45  

Автор вопроса:  Mikhael | ICQ: 138809268 

Я получаю данные с некоторого устройства и мне нужно записать их в файл. Если прроизводить запись побайтово (print #n, byte) то на запись всех 128Кб уходит довольно значительное время (порядка 10 сек).

Существует ли возможность в ВБ сохранять поблочно (типа указал массив и он целиком закрылся). Или другие варианты ускорения процесса.

Вот текущий код

Open  FileName  For Output As #14

Dim dt As Integer


    For n = 1 To 65536*2

        dt = ADC100_ReadRegister3(hADC100)
        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

я чего-то не понимаю, как надо делать правильнее.

Пусть у нас есть массив b(100) со значениями, его что можно целиком скинуть

Open "c:\test.txt" For Binary Access Write As #14
Print #14, , b()
Close #14

так не выходит ВБ орёт "Type mismatch"

как правильнее

 

Ответить

Номер ответа: 12
Автор ответа:
 digitron



Вопросов: 2
Ответов: 23
 Профиль | | #12 Добавлено: 01.06.04 16:02
Не Print, а Put

Ответить

Номер ответа: 13
Автор ответа:
 Mikhael



ICQ: 138809268 

Вопросов: 15
Ответов: 14
 Профиль | | #13 Добавлено: 01.06.04 16:44

Аааа, понятно, совсем слепой стал =))) заработало

SeMa & digitron СПАСИБО И RESPECT.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам