Отправляет email-рассылки с помощью сервиса Sendsay

Супер ТРЁП !!! Форум обо всем !!!

Новая трабла в С++

Привет ,

Блин, новая трабла в С++.
Создаю поток для вывода в функции нажатия.
ofstream outfile(FileName);
Пишу в этом модуле.
outfile<<Data1<<endl;
Все нормально.
обращаюсь в другой функции
outfile<<....
Ошибка: Undefined Symbol "outfile"
???????

Ответить   Mon, 8 Mar 2004 23:50:28 +0300 (#99267)

 

Ответы:

Привет, EvGenius.

Вы писали 8 марта 2004 г., 23:50:28:

Ты же объявил outfile локально внутри тела первой функции, вот вторая
функция его и не видит, передавай поток в качестве параметра второй
функции.

Ответить   Tue, 9 Mar 2004 12:28:01 +0300 (#99494)

 

Привет Alexey,

Подроблее пожалуйста!

Сообразил вот так:
void TTestClient::WriteToFile(AnsiString InLabel, AnsiString InValue)
{
if (!outfile)
{
ofstream outfile(LogFileName.c_str());
}
if (Close)
{
outfile.close();
}
outfile<<InLabel.c_str()<<InValue.c_str()<<endl;
}

Он показывает ошибку undefined symbol outfile.
Я понял, что этот outfile действует только во фрагментах вложеных в
тот, где этот поток был обьявлен.
Можно его обьявить так, чтобы он действовал на всю прогу?

Ответить   Wed, 10 Mar 2004 15:56:18 +0300 (#100286)

 

Привет, EvGenius.

Вы писали 10 марта 2004 г., 15:56:18:

Мда, ну и стиль

Откуда берется Close?

Могли закрыть файл, а теперь пытаемся писать... здравствуй
EXCEPTION...

Я бы написал по крайней мере так:

В заголовке класса TTestClient:

ofstream outfile;

Далее сама функция:

void TTestClient::WriteToFile(AnsiString InLabel, AnsiString InValue)
{
if (!outfile.is_open())
{
outfile.open(LogFileName.c_str());
}
outfile<<InLabel.c_str()<<InValue.c_str()<<endl;
if (Close)
{
outfile.close();
}
}

Хотя тоже криво, но таковы твои условия...

Ответить   Wed, 10 Mar 2004 18:13:40 +0300 (#100340)