MFC 问题 求助!!!!

zzvszz1 2009-12-12 02:35:10
MFC中如何利用CFileDialog类将数据写入文件或者从文件中读取数据。
主要是我想利用CFileDialog对话框来保存或读取文件,这个怎么做。

CString strFarmlandPath;
CFileDialog hFileDlg(FALSE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY,
TEXT("text files(*.txt)|*.txt|所有文件(*.*)|*.*||"),NULL);

//hFileDlg.m_ofn.nFilterIndex=1;
//hFileDlg.m_ofn.hwndOwner=m_hWnd;
//hFileDlg.m_ofn.lStructSize=sizeof(OPENFILENAME);
//hFileDlg.m_ofn.nMaxFile=MAX_PATH;
if(hFileDlg.DoModal() == IDOK)
{
strFarmlandPath = hFileDlg.GetPathName();
UpdateData(FALSE);
}


我就想这样来写入数据 或者保存数据 怎么做啊?
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiujiu45 2009-12-12
  • 打赏
  • 举报
回复
受教了~~~
szuzsq 2009-12-12
  • 打赏
  • 举报
回复
再给个C的FILE*的吧
FILE* file = fopen("C:\\out","w+b");
char buf[1024]={0};
//读
fread(file,buf,sizeof(char),1024);
//写
fwrite(file,buf,sizeof(char),1024);


wjhuangjin 2009-12-12
  • 打赏
  • 举报
回复
该所得都说完了,我就顶一个吧
MoXiaoRab 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a746027209 的回复:]
楼上已经说得很明白了,这里我就给个步骤吧.(其实方法很多的!)
1.利用CFileDialog 构造个对象fDlg,调用DoModal函数(fDlg.DoModal());
2.生成CFile类的对象,利用步骤1得到的路径传递参数
比如:CFile file(fDlg.GetPathName(),CFile::modeCreate|CFile::modeReadWrite);
3.开始读取或写入.
if(读取)
{
  char buf[1024*N];//缓冲区
  int iRead=file.Read(buf,1024*N);
  buf[iRead]='\0';
  //Read file success!
}
if(写入)
{
  //buf存有你想写入的数据.
  file.Write(buf,iDataLen);
  //写入文件成功
}
file.Close();//关闭文件
[/Quote]

支持
k_x_x 2009-12-12
  • 打赏
  • 举报
回复
学习
a746027209 2009-12-12
  • 打赏
  • 举报
回复
楼上已经说得很明白了,这里我就给个步骤吧.(其实方法很多的!)
1.利用CFileDialog 构造个对象fDlg,调用DoModal函数(fDlg.DoModal());
2.生成CFile类的对象,利用步骤1得到的路径传递参数
比如:CFile file(fDlg.GetPathName(),CFile::modeCreate|CFile::modeReadWrite);
3.开始读取或写入.
if(读取)
{
char buf[1024*N];//缓冲区
int iRead=file.Read(buf,1024*N);
buf[iRead]='\0';
//Read file success!
}
if(写入)
{
//buf存有你想写入的数据.
file.Write(buf,iDataLen);
//写入文件成功
}
file.Close();//关闭文件
  • 打赏
  • 举报
回复
数据比较简单的话 可以用CStdioFile
oyljerry 2009-12-12
  • 打赏
  • 举报
回复
CFileDialog主要实现文件打开和保存的工作,通过它得到文件的路径,名称,这样你就可以用VFile等来读写文件好了
mmilmf 2009-12-12
  • 打赏
  • 举报
回复
事实上1楼说的很好了,
CFileDialog只是MFC提供的通用对话框类,这些通用对话框都有一个共同的
特点:
他们都从用户获取信息,但不对信息做处理。
所以在使用CFileDialog类时,通过对话框获取文件的路径等,并不能读取文件中
的数据,或者对该文件写数据。必须使用FILE(c),fstream(c++),CStdioFile.
等来读或者写数据。

至于打开获取保存,可以设置CFielDialog类的第一个参数
TRUE为打开,FALSE保存
zpf82118 2009-12-12
  • 打赏
  • 举报
回复
光是CFileDialog本身是做不到的,必须和其他文件操作的对象配合使用。
比如通过文件对话框获取到所需要的路径和文件名等信息后,再通过CFile或FILE进行文件读写操作。当然你也可以自己重写CFileDialog使其能够满足要求。

16,551

社区成员

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

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

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