• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

狰鸩的快乐 东北电力大学 2019-12-19 12:59:10
如题,我只想用一个按钮完成创建、写入操作,但是不太清楚该如何实现,求各位点拨一二!
...全文
146 点赞 收藏 15
写回复
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,如何实现?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2019-12-19 12:59
社区公告

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