导航:首页 > 文件教程 > mfc文件操作

mfc文件操作

发布时间:2023-03-04 11:35:02

① MFC中写入文件

参考代码如下:
BOOL CnewoneDlg::OutputBase(void)
{
// 1 组合到总字符串strSum中
CString strSum = _T(""), strTmp;

for(int i=0; i<50; i++)
{
strTmp.Format(_T("\r\n\r\n%d."), i);

strSum += strTmp;
strSum += _T("\r\n Sex: ") + A[i].Sex;

// 2 写入文件
CFile cf;
if(!.Open(_T("D:\\TXL.TXT"), CFile::modeCreate|CFile::modeWrite))
{
AfxMessageBox(_T("D:\\TXL.TXT \r\n Open failed when write."));
return FALSE;
}

int len = strSum.GetLength()
cf.Write(strSum.GetBuffer(len), len);
cf.Close();

strSum.ReleaseBuffer();

return TRUE;
}

void CnewoneDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
OutputBase();
EndDialog(1);
}

② mfc 如何打开文件

读取EXCEL文档里的数据,因为EXCEL是有格式的,所以和读取TXT等数据文件完全不同。

如果TXT,那回么使用CFile类Open打开文件就可答以读取数据了,相对比较简单。

读取EXCEL文档里的数据,需要用ADO数据源或者OLE的Office组件,在Open菜单响应函数中设置数据源并进行数据库操作,如果初学,可能会比较困难,需要熟悉的东西很多。

建议:EXCEL文件可以另存为csv格式,这个是纯文本的,可以直接CFile按照文本文档读取,如果不是项目需求,这个实现比较适合初学者。

③ MFC一段文件操作代码在主线程和多线程中有什么区别和注意事项

首先强调一点:你这里有主线程和和新建线程,它们都存在于你这个程序的进程里专,这属个问题没涉及主进程、子进程什么的,进程和线程的概念千万别弄混。

即使新建线程没用Sleep函数,界面照样不能即时响应新建线程更新界面的操作。Windows的线程可分为UI线程和工作线程,主线程是UI线程,负责一切响应用户输入和绘制窗口界面的人机交互工作,新建的线程是工作线程,只负责运算,不处理人机交互。所以何时响应界面的更新绘制是由你的主线程决定的,如果主线程还在执行某个函数而没有回到消息循环,就不能更新界面,啥时候那个函数执行完了就可以更新界面了。

防止线程被打断,是线程同步问题,与这里的问题没啥关系。Windows提供了一系列的线程同步API,你可以使用像自旋锁、临界区、Slim读写锁、条件变量这样的用户级线程同步API,也可以使用事件、信号量、互斥量这样的内核同步对象。具体的原理和使用方法不是三言两语能说清楚的,你可以阅读操作系统教材和《Windows核心编程》中讲解多线程的章节。

④ MFC打开文件夹

void CXXXDlg::OpenFolder(){ BROWSEINFO bi; ZeroMemory(&bi,sizeof(BROWSEINFO)); //添加提示语句 bi.lpszTitle= _T("请选择文件夹"); //添加"新建文件夹项"和"编辑框" bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX; // 显示一个对话框让让用户选择文件夹 LPITEMIDLIST pidl = SHBrowseForFolder(&bi); char szFolder[_MAX_PATH]; memset(szFolder, 0, sizeof(szFolder)); CString strFolder = _T(""); if (pidl != NULL) { SHGetPathFromIDList(pidl, szFolder); //保存文件夹路径存 strFolder.Format(_T("%s"), szFolder); afxMessageBox(strFolder); } else { return; }}

⑤ mfc 如何复制文件到文件夹

主要有两个难点:
1、如何选择文件;
2、选择好文件之后,如果复制;

1st、关于文件选择,可参考下面这段代码:
CString CDcPackerDlg::BootOpenDialog() //返回选择的文件名称
{
CString strFile = _T("");

CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), NULL);

if (dlgFile.DoModal())
{
strFile = dlgFile.GetPathName();
}

return strFile;
}

//加载文件按钮
void CDcPackerDlg::OnBnClickedSelectdec()
{
// TODO: Add your control notification handler code here
m_strDescPath = ""; //类的成员变量

//"打开文件"对话框,选择文件,返回其路径
m_strDescPath = BootOpenDialog();
}

2nd、文件复制:
2.1 获得程序目录
CString strPath = "", strDir = "";
char filepath[MAX_PATH];
GetMoleFileName(NULL, filepath, MAX_PATH);
strDir.Format("%s", filepath);
strPath = strDir.Left(strDir.ReverseFind('\\'));

2.2 复制文件
在MFC下可以用CopyFile()函数,定义如下:
BOOL CopyFile(
LPCTSTR lpExistingFileName, //原文件地址,包括文件名
LPCTSTR lpNewFileName, ////目的文件地址,包括文件名
BOOL bFailIfExists //如果目的文件存在的操作
);

3rd、自己把上面给的代码组装一下,就可以满足你的要求了。
打字不易,如满意,望采纳。

阅读全文

与mfc文件操作相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接