【发布时间】:2021-12-18 00:18:13
【问题描述】:
我会使用 TSaveTextFileDialog 将我的 2 个整数和浮点数组分别保存到“csv 样式”.txt 文件中。我正在尝试使用 Windows VCL 应用程序在 C++ Builder 中执行此操作。 这是我的尝试:
__fastcall TForm6::TForm6(TComponent* Owner)
: TForm(Owner)
{
saveTxtDlg = new TSaveTextFileDialog(this);
TStrings* encodings = new TStringList();
encodings->AddObject("UTF8", TEncoding::UTF8);
saveTxtDlg->Encodings->Assign(encodings);
saveTxtDlg->Filter = "Text files (*.txt)|*.TXT";
}
void __fastcall TForm6::Button2Click(TObject *Sender)
{
if (saveTxtDlg->Execute(this->Handle))
{
String filename = saveTxtDlg->FileName + ".txt";
int encIndex = saveTxtDlg->EncodingIndex;
TEncoding* enc = dynamic_cast<TEncoding*>
(saveTxtDlg->Encodings->Objects[encIndex]);
int x[] = {1, 2, 3, 4, 5};
float y[] = {10.1, 20.5, 30.8, 40.7, 50.2};
for (int i = 0; i < 5; i++) {
std::string s = std::to_string(x[i]) + "," + std::to_string(y[i]);
s.SaveToFile(filename, enc);
}
}
}
但是 string 没有“SaveToFile”的成员。请问我怎么解决?提前谢谢你。
【问题讨论】:
-
您正在泄漏您的
TStringList对象。你需要在Assign()'ing 到对话框之后delete它。否则,您可以完全摆脱它,而只使用saveTxtDlg->Encodings->AddObject(_D("UTF8"), TEncoding::UTF8);。
标签: c++ c++builder vcl tsavedialog