一个简单问题,关于写文件的,困惑了我好久,大家帮帮我!!!

youki1234 2005-08-28 10:23:06
以下代码段,加到任意的地方(如:一个按钮事件下)连续运行两次就会产生错误:

CStdioFile m_EditNameFile;
m_EditNameFile.Open("name.txt",CFile::modeWrite);
m_EditNameFile.SeekToEnd();
m_EditNameFile.WriteString("m_EditName");
m_EditNameFile.WriteString("^");
m_EditNameFile.Close();


CFileDialog m_FileSave(FALSE,"Jdq","m_EditName",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.Jdq|*.jdq|All Files(*.*)|*.*||",NULL);


if(m_FileSave.DoModal()==IDOK)
{
;
}

为什么会这样???大家帮帮我!!!(自己测试发现只要有m_FileSave.DoModal()就会产生错误)
...全文
154 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
youki1234 2005-08-28
  • 打赏
  • 举报
回复
就如ggw(格格巫) 所说,我也是每次调到SeekToEnd();就失败,可能就是路径改变了的问题~·我再试试~谢谢大家
snaill 2005-08-28
  • 打赏
  • 举报
回复
楼主说了半天也没说清楚出了什么错?那里出错?如果是文件读写出错,应该就是楼上所说,目录改变了,可以事事将name.txt拷贝到c:\下然后使用绝对路径测试

另ggw(格格巫) 所说{hFile=4294967295 name="C:\Documents and Settings\IBM\My Documents\name.txt"}
其实4294967295的16进制形式就是0xFFFFFFFF,也就是无效的文件句柄,文件打开已经错了
38062708 2005-08-28
  • 打赏
  • 举报
回复
第一次运行时,程序的当前路径是 name.txt 的路径,当保存文件时你指定了另外的路径,第二次读文件name.txt时,就会出错了,因为此时默认的路径是你上次保存文件的路径了。

所以打开文件时最好用绝对路径,这样保证不出错
handsomerun 2005-08-28
  • 打赏
  • 举报
回复
OFN_NOCHANGEDIR

Restores the current directory to its original value if the user changed the directory while searching for files.


你加个OFN_NOCHANGEDIR 参数试试

就是OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR
ggw 2005-08-28
  • 打赏
  • 举报
回复
我又跟踪了一下,如果将另存为时的目录改为你name.txt文件所在目录,就一点问题没有了。一串虚函数调用懒的细分析。还是问高人8。
handsomerun 2005-08-28
  • 打赏
  • 举报
回复
调用CFileDialog 的DoModal,
会改变当前路径,
即改为这个你另存的那个路径为当前路径

不知道是不是这个原因造成了程序的问题
ggw 2005-08-28
  • 打赏
  • 举报
回复
调试了一下,第二次路径为以下:所以SeekToEnd();失败。至于为什么会是这样,可能是由于‘另存为’所致?!再没调下去。
{hFile=4294967295 name="C:\Documents and Settings\IBM\My Documents\name.txt"}
david430 2005-08-28
  • 打赏
  • 举报
回复
代码没问题的....

youki1234 2005-08-28
  • 打赏
  • 举报
回复
name.txt一定是存在的,我专门写了个程序试,都会出现 错误的画面,难道和机子有关?我用的是2003
truewill 2005-08-28
  • 打赏
  • 举报
回复
无论按钮按多少次都不会死啊
truewill 2005-08-28
  • 打赏
  • 举报
回复
似乎没有问题哦
会不会是你的name.txt不存在阿
annalee 2005-08-28
  • 打赏
  • 举报
回复
name.txt,这个文件你应该放在你的当前的工程下面,不然找不见
作者介绍作者Toby:持牌照消费金融模型专家,和中科院,中科大教授保持长期项目合作;和同盾,聚信立等外部数据源公司有项目对接。熟悉消费金融场景业务,线上线下业务,包括现金贷,商品贷,医美,反欺诈,汽车金融等等。模型项目200+,擅长Python机器学习建模,对于变量筛选,衍生变量构造,变量缺失率高,正负样本不平衡,共线性高,多算法比较,调参等疑难问题有良好解决方法。作者赠语--与其被人工智能代替,不如主动学习编程,设计机器为自己服务 课程背景我在多次python培训时,对学员讲解编程对人生具有重大影响。曾经大学毕业时也迷茫过,不知道以后要干嘛。面对招聘会上密密麻麻的人群,经不知所措。自从接触python编程后,我对这门快速,高效程序语言表示惊讶,从此人生轨迹悄悄发生改变。编程不是计算机专业的垄断,我多次提醒学生。在欧美日,美术专业,音乐专业,英语专业,考古专业,数学专业,物理专业的学生同样大量使用编程。编程只是一个工具,让我们快速实现大脑的逻辑算法。不要在怀疑自己了,动手吧,敲下第一行代码 “”hello world!“”,恭喜你,你已经是一名程序员了,对就这么简单,follow me!python编程让曾经迷茫的我发现了一个奇妙世界,我很乐意分享这些宝贵的资源和经验,希望帮助到同样困惑的你!为了让广大学员免费和快速学习python,我为大家准备了新的课程《Python入门经典(2K超清)_》。此课程目录如下,大概包括python环境搭建,资源介绍,基础知识和就业指导。视频采用专用显卡录制,支持2K超清分辨率,学员可以看清每一行代码和文字,具有较好用户体验。 课程概述本课程避免一来讲解python语法,而是用另一种思路讲述python。让初学者彻底明白python到底可用于什么领域,学了有什么好处。本课程既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是中高级Python程序员,也能从书里找到耳目一新的内容。课程第一章介绍python官网,软件下载地址,和专用数据科学高级版本框架anaconda。初学者如何用pip安装python的第三方包。第二章推荐一些python学习书籍和免费数据库资源,用于机器学习和人工智能建模。第三章介绍python速查表,节约菜鸟和老鸟查阅语法时间;还有基础语法,展示了Python DIY 植物大战僵尸的游戏。最后提供Python就业指导,提供比公务员更好金饭碗。作者想分享所有会的Python知识给大家,但时间有限,最后分享一些学习方法给学员,让大家以不变应万变。  

16,473

社区成员

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

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

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