MFC读取TXT文件,写入编辑框

我的思路是把txt的内容读到一个数组中,然后调入编辑框中显示,txt文件从文件夹对话框中选择,望MFC的高手能帮我写一下代码。!不胜感激。我是这样写的,但是运行后可以读出... 我的思路是把txt的内容读到一个数组中,然后调入编辑框中显示,txt文件从文件夹对话框中选择,望MFC的高手能帮我写一下代码。!不胜感激。
我是这样写的,但是运行后可以读出,并显示,可显示的内容和TXT的内容不一样,只有部分一样,或者多或者少。
void CSerialKF1View::OnFileOpen()
{
// TODO: Add your command handler code here
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetFileName();
FILE* pfile = fopen( str, "r" ); // 打开文件
TCHAR szBuf[MAX_PATH];
fread( szBuf, 1, MAX_PATH, pfile ); // 读取文件
GetDlgItem( IDC_SEND )->SetWindowText( szBuf ); // 写控件
fclose( pfile ); // 关闭文件
}

}
展开
 我来答
风轻云度
2008-06-07 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
FILE* pfile = fopen( "c:\\a.txt", "r" ); // 打开文件
TCHAR szBuf[MAX_PATH];
fread( szBuf, 1, MAX_PATH, pfile ); // 读取文件
GetDlgItem( ID_EDIT )->SetWindowText( szBuf ); // 写控件
fclose( pfile ); // 关闭文件

补充:

改成GetPathName

void CSerialKF1View::OnFileOpen()
{
// TODO: Add your command handler code here
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetPathName();
FILE* pfile = fopen( str, "r" ); // 打开文件
TCHAR szBuf[MAX_PATH];
fread( szBuf, 1, MAX_PATH, pfile ); // 读取文件
GetDlgItem( IDC_SEND )->SetWindowText( szBuf ); // 写控件
fclose( pfile ); // 关闭文件
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jill0908
2008-06-07 · TA获得超过487个赞
知道小有建树答主
回答量:1169
采纳率:0%
帮助的人:444万
展开全部
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetFilePath();

}
这个就是你要的打开文件的对话框.
得到路径后其他的参考楼上的代码.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
495495_sjwsjw
2008-06-07
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
CFile file;
if(!file.Open(filename,CFile::modeCreate|CFile::modeWrite))
{
CString msg("Can't open "+filename+"\nCheck the filename.");
MessageBox(NULL,msg,"Stock",MB_ICONEXCLAMATION|MB_OK);
}
else
{
// get and lock handle to edit text
HANDLE handle=pedit->GetHandle();
LPSTR buffer=(LPSTR)LocalLock(handle);

// write edit text to file, close and unlock
int length=pedit->GetWindowTextLength();
file.Write(buffer,length);
file.Close();
LocalUnlock(handle);

//pedit->SetFocus();
}
这些程序可用,我一直在用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
2008-06-08 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1664万
展开全部
GetPathName();
--------------------
MAX_PATH太小了,才256,也就是windows下路径的最大长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6908270270
2008-06-07 · TA获得超过3427个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:703万
展开全部
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)
{
CString str;
CFile f;
f.Open(fileDlg.GetFileName(),CFile::modeReadWrite);
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
f.close();
GetDlgItem( IDC_SEND )->SetWindowText( str);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式