導航:首頁 > 文件教程 > 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

友情鏈接