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 ); // 关闭文件
}
} 展开
我是这样写的,但是运行后可以读出,并显示,可显示的内容和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 ); // 关闭文件
}
} 展开
5个回答
展开全部
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 ); // 关闭文件
}
}
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 ); // 关闭文件
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetFilePath();
}
这个就是你要的打开文件的对话框.
得到路径后其他的参考楼上的代码.
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetFilePath();
}
这个就是你要的打开文件的对话框.
得到路径后其他的参考楼上的代码.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
这些程序可用,我一直在用
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();
}
这些程序可用,我一直在用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetPathName();
--------------------
MAX_PATH太小了,才256,也就是windows下路径的最大长度
--------------------
MAX_PATH太小了,才256,也就是windows下路径的最大长度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询