/*******************************************************//
//****************读取文本相关操作***********************//
//入口参数:m_Readtxt,打开文件的路径信息。
//出口参数:m_strtempswap,返回值为读取的文本。
//*******************************************************//
CString CM2printDlg::Readtextinfo(CString m_Readtxt)
{ CString m_strtempswap=_T("没有找到数据");
CFile file;
if(!file.Open(m_Readtxt,CFile::modeRead ))
{
return m_strtempswap;//打开文件
}
int m_nFilelength=file.GetLength();
BYTE *pfilenewmem = new BYTE[m_nFilelength];//新建内存空间
memset(pfilenewmem,0,m_nFilelength);//初始化内存在新建空间内写入零
file.SeekToBegin(); //寻找读取文件的开始
file.Read(pfilenewmem,m_nFilelength);
file.Close();
TCHAR *pSwapbuff = new TCHAR[m_nFilelength*2];
memset(pSwapbuff,0,m_nFilelength*2);
MultiByteToWideChar(CP_ACP,0,(char*)pfilenewmem,m_nFilelength,pSwapbuff,m_nFilelength*2);
m_strtempswap.Empty();
m_strtempswap.Format(_T("%s\n"),pSwapbuff);
m_strtempswap.TrimRight();
delete []pSwapbuff;
pSwapbuff =NULL;
delete []pfilenewmem;
pfilenewmem=NULL;
return m_strtempswap;
}
void CM2printDlg::OnOpenfile()
{
// TODO: Add your control notification handler code here
CString cspath;
CFileDialog * dialog = new CFileDialog(TRUE);
if(IDOK==dialog->DoModal())
{
cspath=dialog->GetPathName();
filedata=Readtextinfo(cspath);
m_disfiledata.SetWindowText(filedata);
}
}
调试通过的,直接拷贝就可以用