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

狰鸩的快乐 2019-12-19 12:59:10
如题,我只想用一个按钮完成创建、写入操作,但是不太清楚该如何实现,求各位点拨一二!
...全文
399 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,如何实现?
内容概要:本文深入解析了FPGA跨时钟域(CDC)设计的核心原理与工程实现方法,涵盖亚稳态的物理本质、平均无故障时间(MTBF)计算、单比特与多比特信号的同步技术(如两级同步器、握手协议、异步FIFO)、Vivado工具下的时序约束与时序分析流程,并提供了丰富的Verilog代码实例、仿真测试平台、Tcl脚本以及调试技巧。文章还介绍了多种高级CDC结构,如数据总线同步器、脉冲同步器、复位同步器,并通过完整的顶层设计与系统集成案例(如视频流处理、高速串行接口、多通道数据采集)展示了实际应用。配套的自动化脚本实现了仿真、综合、实现与分析的一体化流程,确保设计的可靠性与可重用性。; 适合人群:具备数字电路基础和Verilog语言能力的FPGA初级至中级工程师,以及从事通信、图像处理、高速接口等领域研发的技术人员。; 使用场景及目标:① 掌握FPGA设计中跨时钟域问题的根本原因及解决方案;② 学习如何在Vivado中正确设置CDC时序约束并分析报告;③ 利用提供的代码和脚本快速搭建和验证自己的CDC模块;④ 解决项目中因亚稳态导致的功能异常、数据丢失以及时序违例等问题; 阅读建议:此资源以理论讲解与工程实践紧密结合为核心,不仅提供原理阐述,更强调通过代码实现和仿真验证来深化理解。建议读者在学习过程中,务必动手搭建项目,运行所提供的仿真和Tcl脚本,观察波形,分析时序报告,并尝试修改参数以观察系统行为的变化,从而真正掌握跨时钟域设计的精髓。

16,550

社区成员

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

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

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