如何在MFC中读取txt文件中的数据

如何在MFC中读取txt文件中的数据,第1张

MFC主要读写文件的类是CFile,而CStdioFile类是派生自CFile类的,主要增加了一个按行的方式读取/写入文件每行字符串的功能

读写TXT文件,写入和输出必须统一格式

CStdioFile

myFile,

File

if(myFile.Open(CBApp::getCurrModulePath()+_T("filename.txt"),

CFile::modeRead))

{

//读取

myFile.ReadString(str)

myFile.Close()

}

else

{

//创建

File.Open(CBApp::getCurrModulePath()+_T("filename.txt"),

CFile::modeWrite

|

CFile::modeCreate)

File.WriteString(sFileName)

File.Close()

}

//写入

File.Open(CBApp::getCurrModulePath()+_T("filename.txt"),

CFile::modeWrite

)

File.WriteString(sFileName)

File.Close()

我写了一个。

界面一个文本框两个按钮,文本框关联一个CString型变量m_Data,设置属性为Vertical scroll和Want return。

两个按钮对应的读写函数分别如下

void CFileTxtDlg::OnRead()

{

// TODO: Add your control notification handler code here

CFileDialog fDlg(TRUE)

fDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0\0"

if(fDlg.DoModal() == IDOK)

{

CStdioFile stdFile

stdFile.Open(fDlg.GetPathName(), CFile::modeRead | CFile::typeBinary)

DWORD fileLen = stdFile.GetLength()

char *pBuf = new char[fileLen + 1]

pBuf[fileLen] = 0

stdFile.Read(pBuf, fileLen)

UpdateData()

m_Data = pBuf

UpdateData(FALSE)

delete pBuf

stdFile.Close()

}

}

void CFileTxtDlg::OnWrite()

{

// TODO: Add your control notification handler code here

UpdateData()

CFileDialog fDlg(FALSE)

fDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0\0"

fDlg.m_ofn.lpstrDefExt = "txt"

if(IDOK == fDlg.DoModal())

{

CStdioFile stdFile

stdFile.Open(fDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeBinary)

stdFile.WriteString(m_Data)

stdFile.Close()

}

}

如要源代码发消息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11794198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存