![]() |
|
|
![]()
|
|
| nitrikc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 10.5.2011 Репутация: нет Всего: нет |
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 ; } вот часть программы. не могу понять в чем ошибка. извиняюсь за оформление |
|||
|
||||
| borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
так делать нельзя, т.к. FileName создаёт временный объект AnsiString, который после этой строчки не жилец. Нужно так
это ещё что ??? hFile - HANDLE file_name - char*
зачем заремил ? было всё правильно. хотя лучше
только потом (в конце) не забудь сделать ему delete []arr; зачем do...while, если ты собираешься читать весь файл одним блоком ? выделяешь код и нажимаешь кнопку "Код" сверху справа над полем редактирования Это сообщение отредактировал(а) borisbn - 10.5.2011, 17:53 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
| nitrikc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 10.5.2011 Репутация: нет Всего: нет |
>>>>>>>>>>>>>>зачем do...while, если ты собираешься читать весь файл одним блоком ? потом сделаю что бы блоками. тестить хочу на маленьких файлах. потом в поток хочу переделать. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
> hFile ... а как указать на открытый файл
Нужно пользоваться одним набором функций для открытия/чтения/закрытия. Либо CreateFile/ReadFile/CloseHandle либо fopen/fread/fclose Почитай про эти ф-ции. В их описании есть примеры использования -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Конструкция (EOF==1) тождественно равна false.
Рекомендую почитать букварь по С |
|||
|
||||
| nitrikc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 10.5.2011 Репутация: нет Всего: нет |
а getfile можно использовать?
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
WTF is getfile?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| nitrikc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 10.5.2011 Репутация: нет Всего: нет |
опечатался getline. чтобы файл целиком прочитать.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 3 Всего: 85 |
||||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |