MFC 使用一个BUTTON按钮创建txt文档并写入CString数据

狰鸩的快乐 2019-12-19 12:59:10
如题,我只想用一个按钮完成创建、写入操作,但是不太清楚该如何实现,求各位点拨一二!
...全文
392 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2019-12-23
  • 打赏
  • 举报
回复
// save to file
void CShowdirDlg::OnButton6()
{
// TODO: Add your control notification handler code here
CString pathName;
CFileDialog fileDlg(FALSE, _T("*.txt"),NULL,OFN_OVERWRITEPROMPT,
_T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*|"));
if(fileDlg.DoModal() == IDOK)
{
pathName = fileDlg.GetPathName();
}
CStdioFile flist;
flist.Open(pathName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive);
UINT nCount=fileList.size();
UINT i;
for(i=0;i<nCount;i++)
{
if(i>=nCount) break;
flist.WriteString(fileList[i].szFileName.c_str());
flist.WriteString(fileList[i].szCreateTime.c_str());
flist.WriteString(fileList[i].szFilePath.c_str());
}
flist.Close();
AfxMessageBox("ListCtrl saved!");
}
CFileDialog 就是得到 :
pathName = fileDlg.GetPathName();
CStdioFile flist; 才是:
flist.Open(pathName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive);
2 能不能通过CFile使用相对路径把文件创建在软件当前目录下就是4楼的
CStdioFile flist;
flist.Open("ListSaved.txt",...
Eleven 2019-12-23
  • 打赏
  • 举报
回复
CFile::Open/Read/Write/Close()
狰鸩的快乐 2019-12-23
  • 打赏
  • 举报
回复
引用 12 楼 schlafenhamster 的回复:
CFileDialog 只是 取 文件 名 怎么 有 创建 ?
如果创建新txt就会弹出查找失败的警告


原来如此...那大佬如果要实现自己选择路径创建文件的话还是用CFile吗?我在网上找,看到的全是预先选好路径的文件创建,我能不能通过CFile使用相对路径把文件创建在软件当前目录下啊
狰鸩的快乐 2019-12-21
  • 打赏
  • 举报
回复
引用 9 楼 schlafenhamster 的回复:
CFileDialog fileDlg(FALSE, _T("*.txt"),NULL,OFN_OVERWRITEPROMPT,
_T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"));

schlafenhamster 2019-12-21
  • 打赏
  • 举报
回复
CFileDialog fileDlg(FALSE, _T("*.txt"),NULL,OFN_OVERWRITEPROMPT,
_T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"));
狰鸩的快乐 2019-12-21
  • 打赏
  • 举报
回复
引用 7 楼 schlafenhamster 的回复:
OFN_CREATEPROMPT | OFN_OVERWRITEPROMPT


CFileDialog fileDlg(FALSE, NULL, _T("*.txt"), OFN_CREATEPROMPT|OFN_OVERWRITEPROMPT, _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"));

这是我的,还是会弹出警告框
schlafenhamster 2019-12-21
  • 打赏
  • 举报
回复
OFN_CREATEPROMPT | OFN_OVERWRITEPROMPT
狰鸩的快乐 2019-12-21
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:

TCHAR szFilters[]= _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||");
CFileDialog fileDlg(FALSE, 0, _T("*.txt"), OFN_OVERWRITEPROMPT, szFilters, this);

if(fileDlg.DoModal() == IDOK)
{
CString pathName = fileDlg.GetPathName();
}

大佬我用CFileDialog,OFN_OVERWRITEPROMPT只能覆盖原有txt,如果创建新txt就会弹出查找失败的警告,我用OFN_CREATEPROMPT也一样,这是什么原因呢
schlafenhamster 2019-12-21
  • 打赏
  • 举报
回复
CFileDialog 只是 取 文件 名 怎么 有 创建 ?
如果创建新txt就会弹出查找失败的警告
待续_1006 2019-12-21
  • 打赏
  • 举报
回复
首先你要知道MFC的事件响应,一个按钮你想叫它做什么事情都可以

可以先百度MFC添加按钮事件,MFC写文件,看2个实例就OK了
vcf_reader 2019-12-20
  • 打赏
  • 举报
回复
CFileDialog
多看看MSDN
schlafenhamster 2019-12-19
  • 打赏
  • 举报
回复
例子
// save to file
void CShowdirDlg::OnButton6()
{
// TODO: Add your control notification handler code here
CStdioFile flist;
flist.Open("ListSaved.txt",CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive);
UINT nCount=fileList.size();
UINT i;
for(i=0;i<nCount;i++)
{
if(i>=nCount) break;
flist.WriteString(fileList[i].szFileName.c_str());
flist.WriteString(fileList[i].szCreateTime.c_str());
flist.WriteString(fileList[i].szFilePath.c_str());
}
flist.Close();
AfxMessageBox("ListCtrl saved!");
}
zgl7903 2019-12-19
  • 打赏
  • 举报
回复

   TCHAR szFilters[]= _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||");
   CFileDialog fileDlg(FALSE, 0, _T("*.txt"),  OFN_OVERWRITEPROMPT, szFilters, this);
   
   if(fileDlg.DoModal() == IDOK)
   {
      CString pathName = fileDlg.GetPathName();
   }
狰鸩的快乐 2019-12-19
  • 打赏
  • 举报
回复
即 选择打开路径并创建txt,然后把CString数据写入
狰鸩的快乐 2019-12-19
  • 打赏
  • 举报
回复
fileNum.Open("采样数据.txt",CFile::modeCreate|CFile::modeWrite);
我现在用这个创建txt,但是我想实现点击按钮 指定位置创建这个txt,如何实现?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧