| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Буилдер не переводит AnsiString в char * |
| Автор: frost 20.10.2003, 11:52 |
| Есть кусочек такой: #include <fstream.h> void __fastcall Tfrm_main::btn_addClick(TObject *Sender) { ofstream OutFile("out.htm", ios::app); if (!OutFile) //искл. тут не возникает OutFile << "<br><br><u>" << ed_name->Text.c_str() << ":</u><br>" << endl; int NLines = memo_text->Lines->Count; for (int i = 0; i < NLines; ++i) OutFile << memo_text->Lines->operator[](i).cstr() << "<br>"; OutFile << "<br>"; exit(0); } Он должен выводить в OutFile HTML-текст и заканчивать свою работу. Вместо этого он там где должны быть строки, выводит ничего и даже в цикле <br> не выводит. Я проверял - файл нормальный. И аппендится. Проведите среди меня разъяснительную работу, пожалуйста. Заранее спасибо. |
| Автор: Ars 20.10.2003, 12:00 | ||||
Неверный вызов Надо так:
|
| Автор: frost 20.10.2003, 12:06 |
| Всё равно. ed_name->Text выводит, а мемо не выводит. |
| Автор: Ars 20.10.2003, 12:25 | ||
Значит дело не в AnsiString, потому что и ed_name->Text.c_str() и memo_text->Lines->Strings[i].c_str() дают одинаковый результат - char* Да, вот еще: у тебя написано operator[](i).cstr(), c_str() без подчеркивания. Если так и в коде, то мож из-за этого... Хотя непонятно, как тогда откомпилилось. |