Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

открыть файл. (Посмотрите сюда!)

5.0K
11 мая 2004 года
phyton
15 / / 26.04.2004
Хочу открыть файл:
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')

Помогите исправить ошибку, а то я уже испробовал все.
2.0K
11 мая 2004 года
HardMix
78 / / 25.06.2003
Цитата:
Originally posted by phyton
Хочу открыть файл:
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

5.0K
12 мая 2004 года
phyton
15 / / 26.04.2004
Цитата:
Originally posted by HardMix

Дык все правильно он тебе выдает. Я так понял
у тебя path и sr.Name это AnsiString.
И вызов функции должен выглядеть так:
fopen((path+sr.Name).c_str(), "...");
вот. Почитай о приоритетах операторов :D





Спасибо, ты мне здорово помог.
Но есть еще одна проблема. Когда я засовываю
fopen((path+sr.Name).c_str(), "..."); в if()
компилятор выдает Cannot covert 'Bool' to 'FILE' ошибку.
Вопрос: Вообще можно провильнуть через этих ошибок. Мне нужно проверять каждый файл на открываемость. А компилятор не понимает этого.

2.1K
13 мая 2004 года
foxby
44 / / 16.07.2003
Цитата:
Originally posted by phyton




Спасибо, ты мне здорово помог.
Но есть еще одна проблема. Когда я засовываю
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" );

...

5.0K
13 мая 2004 года
phyton
15 / / 26.04.2004
Цитата:
Originally posted by foxby


Конечно компилятор компилятор прав. 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);
}
}

проблемный участок кода

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог