| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > проблема с readfile |
| Автор: nitrikc 10.5.2011, 16:32 |
| void __fastcall TForm1::N1Click(TObject *Sender) {BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped); HANDLE hFile;DWORD dw;LPVOID arr; char *file_name; if(OpenDialog1->Execute()) { file_name=OpenDialog1->FileName.c_str(); FILE *file; file = fopen( file_name, "r" ); if( file == 0 ) {ShowMessage("Ôàéë íå íàéäåí");} else {hFile=file_name; do { unsigned long size=GetFileSize(file_name,NULL); Edit1->Text=size; char* arr;//=(char*)VirtualAlloc(NULL,size,MEM_COMMIT,PAGE_READWRITE); ReadFile(hFile,arr,size,&dw,NULL); //ругается } while (EOF==1) ; // ïîêà îí íå ðàâåí ñèìâîëó êîíöà ñòðîêè Memo1->Text=file_name; fclose(file); }} else return ; } вот часть программы. не могу понять в чем ошибка. извиняюсь за оформление |
| Автор: nitrikc 11.5.2011, 03:09 |
| >>>>>>>>>>>>>>зачем do...while, если ты собираешься читать весь файл одним блоком ? потом сделаю что бы блоками. тестить хочу на маленьких файлах. потом в поток хочу переделать. |
| Автор: borisbn 11.5.2011, 06:22 |
| > hFile ... а как указать на открытый файл Нужно пользоваться одним набором функций для открытия/чтения/закрытия. Либо CreateFile/ReadFile/CloseHandle либо fopen/fread/fclose Почитай про эти ф-ции. В их описании есть примеры использования |
| Автор: xvr 11.5.2011, 11:17 |
| Конструкция (EOF==1) тождественно равна false. Рекомендую почитать букварь по С |
| Автор: nitrikc 12.5.2011, 23:29 |
| а getfile можно использовать? |
| Автор: borisbn 12.5.2011, 23:34 |
| WTF is getfile? |
| Автор: nitrikc 12.5.2011, 23:52 |
| опечатался getline. чтобы файл целиком прочитать. |
| Автор: volatile 13.5.2011, 01:29 |
ЗАЧЕМ ?? вам же сказали какие функции использовать. Или нормальные герои всегда идут в обход? |