工伤上下班途中的解读:关于VC文件写入的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 12:04:59
在一个窗口里有一个文本匡和一个按钮,如何实现点击按钮就自动把文本匡的内容保存为一个文本文件?

//取当前时间为文件名, 以使随时保存, 下面一段放入按钮事件中
CString sFileName;

CTime t = CTime::GetCurrentTime();
CString sTmp;
sTmp.Format("%d-%d-%d %d-%d-%d",
t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute(),t.GetSecond());
sFileName = sTmp+".txt";

//保存文件
CFile f;
CFileFind ff;
CString sFile =sFileName ;
if(!ff.FindFile(sFile, 0))
{
f.Open(sFile.GetBuffer(1),CFile::modeCreate,NULL);
f.Close();
}

f.Open(sFile.GetBuffer(1),CFile::modeReadWrite);

CString sText;//文本框内容
GetDlgItem(IDC_TEXT1)->GetWindowText(sText);

//写入数据
f.Write((void*)sText.GetBuffer(1), sText.GetLength());

f.Close();
ff.Close();

好长丫,我翻书去
貌似用output命令
不过先要open文件,麻烦

在VC++ Doc-View 程序结构中,有
做标准的读写工作函数Serialize():
void CMyprogDoc::Serialize(CArchive& ar){
CFile *arFile;
if (ar.IsStoring())
{
// TODO: 补入输出语句
}else
{
// TODO: 补入输入语句
};
//或取得文件名和路径名自己fopen,fprintf也可以:
arFile= ar.GetFile(); // 文件名
arFPath = arFile->GetFilePath(); //路径名

..}

楼上可能不对,要求输出到文本文件。

如果对话框里面文本框和按钮的ID位IDC_CONTENT, IDC_SAVE,那么IDC_SAVE的响应函数可以这么写:

CString content;
GetDlgItem(IDC_CONTENT)->GetWindowText(content);
FILE *fp = NULL;
fp = fopen("C:\\a.txt", "w");
if(NULL == fp)
{
MessageBox("Can't create output file!");
return;
}

fwrite(content, strlen(content), 1, fp);

fclose(fp);