关于文件操作的问题?

wansafelyf 2005-06-13 08:49:22
我从编辑框中的打开对话框打开一个文件后,又用file.open命令打开一个文件,读出文件内容,然后替换编辑框中的内容,编译都通过了,可是一执行就出错误。
但是如果从最近打开的文档里选择一个文件,再执行就能通过,不知这是什么原因,一直百思不得其解。郁闷!!!
...全文
147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wansafelyf 2005-06-20
  • 打赏
  • 举报
回复
文件已经在当前工作目录,当然可以加上对文件打开的判断,但这是问题的主要原因吗
wansafelyf 2005-06-20
  • 打赏
  • 举报
回复
file.ReadString(m_EndString)
有这个函数吗?我怎么找不到呢
KevinWon 2005-06-20
  • 打赏
  • 举报
回复
觉得楼主有点乱乱的 不如先看看以前关于文件操作的帖子吧
tropicscsdn 2005-06-20
  • 打赏
  • 举报
回复
你跟踪了么,判断是哪句出的问题么?不是你的char数组设置的问题吧。为了避免不必要的麻烦,你设置个CString的类型。用file.ReadString(m_EndString),直接就可以读出来了
vcmute 2005-06-18
  • 打赏
  • 举报
回复
110404451.txt在当前工作目录?
没判断open是否成功就Read
wansafelyf 2005-06-18
  • 打赏
  • 举报
回复
我想实现的功能就是在打开的文本文件中查找,如果找到"文件"这个字符串就打开另一个文件,并用其中的内容替换编辑框中的内容,我写的实现函数如下,编译可以通过,但执行时出错,请高手帮助看看哪里有不妥的地方
CEdit& m_Edit = GetEditCtrl();
CString m_FileString;
m_Edit.GetWindowText(m_FileString);

CFile file;
CString m_EndString;


int File1 = m_FileString.Find("文件");
if (File1 != -1)
{
file.Open( "110404451.txt",CFile::modeReadWrite);
char buffer[512];

UINT uByte;

while (uByte = file.Read(buffer,sizeof(buffer)-1))
{
buffer[uByte] = NULL;
m_EndString += CString(buffer);
}
}

m_Edit.SetSel(0,-1);
m_Edit.ReplaceSel(m_EndString);
file.Close();
ervinsas 2005-06-17
  • 打赏
  • 举报
回复

CString pathname = dlg.GetPathName();
HANDLE m_hFile = CreateFile (pathname, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE,
NULL, TRUNCATE_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
wansafelyf 2005-06-17
  • 打赏
  • 举报
回复
如何获得VC中系统自动生成的打开对话框中的文件句柄呢?
江海汇 2005-06-13
  • 打赏
  • 举报
回复
估计你在取得文件路径的时候使用了不恰当的函数,结果只是得到了文件名字,没有完整的路径。从最近打开的文档里选择一个文件,那时因为当前的工作路径就是上一次打开文件的路径,刚好,对了。如果换了路径了,必然打不开文件,Read()肯定会出错
gooyan 2005-06-13
  • 打赏
  • 举报
回复
debug一下,设置断电,看看哪儿出错了。先把上次文件句柄关闭,然后再打开,看看

16,551

社区成员

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

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

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