mfc 怎么完成对txt文件的读取和写入

mfc 怎么完成对txt文件的读取和写入,第1张

我斗辩写了一个。

界面一个文本框两个按钮,文本框关联一个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()

}

}

如要源代码发消息

其中hDireetory为使用CreateFile函数为指定路径生成文

件的句柄;lpBuffer为用于存储返回的文件访问信息的缓冲区

的指针;nBufferLength为以字节为单位的缓冲区的大小;

bWatchSubtree用于指定是否监控子文件夹,如果传人TRUE

则表示监控子文件夹;dwNotifyFiher用键纯于指定监控的动作,例

如FILE NOTIFY_CHANGE_FILE_NAME表示监控文件重命名

这一动作,可迅段以使用“I’,来组合多个这样的值,这样就能满

足几乎所有的监控需求;lpBytesReturned用于在同步调用中指

定传入lpBuffer的字节数,而在异步状态下传人NULL值即

可;lpOvedapped为指向OVERLAPPED结构的指针,仅在异

步调用中使用;最后一个参稿昌咐数是指向OVERLAPPED_COM—

PLETION_ROUTINE的指针,简单地传人NULL即可。

在线程函数中需要做的就是在一个while循环中循环调用

ReadDirectoryChanges函数,然后通过lpBuffer返回的文件访

问信息判断文件具体被如何改动了,然后通过不同安全级别

下的策略来实施文件保护 *** 作。在此系统中主要拦截了4种

件、修改文件和重命名文件,分别通过Action的4种取值

nI卫一ACTION ADDED、FILE-ACrn0N—REMOVED、F1LE_AC一

"l ION_MODI兀ED、nLE—ACllON RENAMED_OLD—NAME来区

别。


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

原文地址: https://outofmemory.cn/tougao/12292349.html

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

发表评论

登录后才能评论

评论列表(0条)

保存