如果TXT,那么使用CFile类Open打开文件就可以读取数据了,相对比较简单。
读取EXCEL文档里的数据,需要用ADO数据源或者OLE的Office组件,在Open菜单响应函数中设置数据源并进行数据库 *** 作,如果初学,可能会比较困难,需要熟悉的东西很多。
建议:EXCEL文件可以另存为csv格式,这个是纯文本的,可以直接CFile按照文本文档读取,如果不是项目需求,这个实现比较适合初学者。
把"通过选择得到一个文件/文件夹的路径" 这些代码实现 写到某个函数里,不是写到按钮实现的函数里就行了。例如:【以下代码中 filePathFile就是你想要的路径】
在主体函数中:
CFileDialog *lpszOpenFile //定义一个CfileDialog对象
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|")
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
{
filePathName = lpszOpenFile->GetPathName()//得到打开文件的路径
}
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!")
return
}
使用MFC读取文件中的内容是程序设计中经常用到的功能CFileDialog cFileDialog( TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
"All Files (*.*)|*.*||", AfxGetMainWnd())//第1步 取得路径
CString strFilePath = ""
CString strFileName = ""
if(cFileDialog.DoModal()==IDOK)
{
m_strFilePath = cFileDialog.GetPathName()
strFileName = cFileDialog.GetFileName()
UpdateData(false)
}
int input = 0
ifstream inout
inout.open(strFileName,ios::in)
if(!inout)
{
cerr<<"Unable to open file!"<<endl
}
else
{
cout<<"打开文件成功"<<endl
}
char nextline[256]
CString temp_str = ""
CString m_temp = ""
while(inout.getline(nextline, sizeof(nextline)))
{
temp_str = nextline
m_temp += temp_str
m_temp += "\r\n"//MFC的编辑框需要使用“\r\n”来识别换行,单单一个“\n”是不够的。
}
m_original = m_temp
AfxMessageBox(m_original)
UpdateData(false)
inout.close()
inout.clear()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)