президент |
Отправлено: 29.04.2006, 23:09 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 3
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int ifile;
if (OpenDialog1->Execute()) {
ifile=FileOpen(OpenDialog1->FileName, fmOpenRead);
Label1->Caption=filelength(ifile);
FileClose(ifile);
}
}
всегда выводит -1.
простите за дурацкий вопрос,
но поэтому и не могу успокоится, пока не ликвидирую в себе непонимание этого. В справочниках filelength используется после open, а не после FileOpen. Почему они несовместимы (если это так)??? |
|
SunDevil |
Отправлено: 30.04.2006, 00:12 |
|
Не зарегистрирован
|
Все же надо так:
CODE | void __fastcall TForm1::Button1Click(TObject *Sender)
{
int ifile;
int isize;
if (OpenDialog1->Execute())
{
ifile=FileOpen(OpenDialog1->FileName, fmOpenRead);
isize=FileSeek(ifile,0,2);
Label1->Caption=isize;
FileClose(ifile);
}
} | |
|
президент |
Отправлено: 30.04.2006, 00:33 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 3
|
Да, так я и сделал. Но почему то не работало?? |
|
AVC |
Отправлено: 03.05.2006, 08:45 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (президент @ 29/04/2006, 23:33) | Да, так я и сделал. Но почему то не работало?? |
Не той функцией открывали файл . Для filelength нужна open
CODE |
int ifile = open((ExtractFilePath(Application->ExeName) + "dat50.dbf").c_str(), O_RDONLY);
Memo1->Lines->Add("ifile = " + AnsiString(int(ifile) ));
Memo1->Lines->Add("flen = " + AnsiString(int(filelength(ifile)) ));
close(ifile);
| |
|