открыть файл. (Посмотрите сюда!)
if((fp=fopen(path+sr.Name.c_str(),"rt"))==NULL),
но компилятор выдает след. ошибки Cannot convert 'AnsiString' to 'const char*'
и Type mismatch in parameter '_path' (wanted 'const char*', got 'AnsiString')
Помогите исправить ошибку, а то я уже испробовал все.
Хочу открыть файл:
if((fp=fopen(path+sr.Name.c_str(),"rt"))==NULL),
но компилятор выдает след. ошибки Cannot convert 'AnsiString' to 'const char*'
и Type mismatch in parameter '_path' (wanted 'const char*', got 'AnsiString')
Помогите исправить ошибку, а то я уже испробовал все.
Дык все правильно он тебе выдает. Я так понял
у тебя path и sr.Name это AnsiString.
И вызов функции должен выглядеть так:
fopen((path+sr.Name).c_str(), "...");
вот. Почитай о приоритетах операторов :D
Дык все правильно он тебе выдает. Я так понял
у тебя path и sr.Name это AnsiString.
И вызов функции должен выглядеть так:
fopen((path+sr.Name).c_str(), "...");
вот. Почитай о приоритетах операторов :D
Спасибо, ты мне здорово помог.
Но есть еще одна проблема. Когда я засовываю
fopen((path+sr.Name).c_str(), "..."); в if()
компилятор выдает Cannot covert 'Bool' to 'FILE' ошибку.
Вопрос: Вообще можно провильнуть через этих ошибок. Мне нужно проверять каждый файл на открываемость. А компилятор не понимает этого.
Спасибо, ты мне здорово помог.
Но есть еще одна проблема. Когда я засовываю
fopen((path+sr.Name).c_str(), "..."); в if()
компилятор выдает Cannot covert 'Bool' to 'FILE' ошибку.
Вопрос: Вообще можно провильнуть через этих ошибок. Мне нужно проверять каждый файл на открываемость. А компилятор не понимает этого.
Конечно компилятор компилятор прав. fopen() возвращает не Bool а FILE. Поэтому делай например так:
FILE *stream;
void main( void )
{
/* Open for read (will fail if file "data" does not exist) */
if( (stream = fopen( "data", "r" )) == NULL )
printf( "The file was not opened\n" );
else
printf( "The file 'data' was opened\n" );
...
Конечно компилятор компилятор прав. fopen() возвращает не Bool а FILE. Поэтому делай например так:
FILE *stream;
void main( void )
{
/* Open for read (will fail if file "data" does not exist) */
if( (stream = fopen( "data", "r" )) == NULL )
printf( "The file was not opened\n" );
else
printf( "The file 'data' was opened\n" );
...
AnsiString Ext=ExtractFileExt(sr.Name).UpperCase();
if(Ext==".TXT")
{
fp=fopen((path+sr.Name).c_str(),"rt");
if(fp==NULL)
{
ShowMessage("Error number Huy sosi");
}
else
{
while(!feof(fp))
{
if(fgets(szBuffer,255,fp)==NULL)
break;
AnsiString s=szBuffer;
if(DoFind(T,s))
{
List->Add(path+sr.Name);
}
}
}
fclose(fp);
}
}
проблемный участок кода