對檔案的處理是mfc程式設計中非常常見的應用。本文就以例項形式做一簡單敘述。具體方法如下:
1.cfiledialog的應用www.111ce.com
格式如下:
cfiledialog::cfiledialog( bool bopenfiledialog, lpctstr lpszdefext = null, lpctstr lpszfilename = null, dword dwflags = ofn_hidereadonly | ofn_overwriteprompt, lpctstr lpszfilter = null, cwnd* pparentwnd = null );
具體引數解釋如下:
bopenfiledialog 為true則顯示開啟對話方塊,為false則顯www.111ti.com示儲存對話檔案對話方塊。
lpszdefext 指定預設的副檔名。
lpszfilename 指定預設的檔名。
dwflags 指明一些特定風格。
lpszfilter 是最重要的乙個引數,它指明可供選擇的檔案型別和相應的副檔名。引數格式如:
pparentwnd 為父視窗指標。
具體**如下:
const int int_max_file_num = 1;
tchar szfilefilter = _t("date file(*.csv)|*.csv|");
tchar *pszfilenamebuf = new tchar[int_max_file_num * _max_path];
cfiledialog dlgopenfile(false, _t("csv"), null, ofn_hidereadonly | ofn_overwriteprompt, szfilefilter, this);
::memset(pszfilenamebuf, 0, int_max_file_num * _max_path * sizeof(tchar));
dlgopenfile.m_ofn.nmaxfile = int_max_file_num * _max_path;
dlgopenfile.m_ofn.lpstrfile = pszfilenamebuf;
dlgopenfile.m_ofn.lpstrfile[0] = null;
if(dlgopenfile.domodal == idok)
這裡需要注意的是:
(1)dlgopenfile第乙個引數為false時,顯示儲存對話方塊,為true時,顯示開啟對話方塊
(2)檔案型別說明和副檔名間用 | 分隔,同種類www.555nu.com型檔案的副檔名間可以用 ; 分割,每種檔案型別間用 | 分隔,末尾用 || 指明,否則會造成亂碼
獲取儲存的檔名稱:
cstring cfiledialog::getpathname( ) 得到完整的檔名,包括目錄名和副檔名
cstring cfiledialog::getfilename( ) 得到完整的檔名
cstring cfiledialog::getextname( ) 得到完整的副檔名
cstring cfiledialog::getfiletitle ( ) 得到完整的檔名,包括目錄名和副檔名
position cfiledialog::getstartposition( ) 對於選擇了多個檔案的情況得到第乙個檔案位置
2.向.csv檔案寫入
由於向.csv檔案中寫入的內容開啟時是以**的形式展現,所以在大多數以結構體儲存到檔案中,以檔案的形式檢視內容時比較常用。
這裡需要注意的是:
(1)如果像一般檔案那樣寫入,檢視檔案時很明顯都是以雙位元組存入的,導致檢視問題,所以我在這個地方使用cstdiofilel類,最後可以使用writestring()將字元寫入到檔案中
(2)當字元中出現中文後,導致中文後面的內容www.666di.com全部無法寫入到檔案中,這時需要在寫入檔案writestring()之前加一句setlocale( lc_ctype, "chs" );
(3)當乙個**中字元完成後,需要在字串後面新增『,',需要換行時,需要在字串後面加上『\r\n';
例如:strtemp.format(_t("%s,"),lvcol.psztext);
strtemp.format(_t("%s\r\n"),lvcol.psztext);
(4)一般情況下,使用cstring將要寫入檔案中的內容全部儲存後,在一起寫入檔案;
具體**如下:
cstring strex;
strex += strtemp;
MFC對檔案的操作
cfile的派生類cstdiofile提供了對檔案進行流式的操作功能。其中函式void cstdiofile writestring lpctstr lpsz 寫入乙個字串,需要給字串lpsz的末尾加上換行標誌 r n 函式bool cstdiofile readstring cstring rst...
MFC對檔案操作的支援 CFile 類
cfile類提供了沒有快取的二進位制格式的磁碟檔案輸入輸出功能。建構函式 cfile lpctstr lpszfilename,uint nopenflags lpszfilename 檔名 nopenflags 檔案訪問和共享的方式 經典取值 cfile modecreate cfile mode...
給MFC程式新增檔案拖放處理
程式支援檔案拖放會使程式使用起來更加方便。當我們從shell window的檔案瀏覽器 中拖入乙個檔案到應用程式視窗時,windows會發生乙個訊息wm dropfiles給程式,支援檔案拖放操作的本質就是程式要適當地處理這個訊息。並不是所有程式都可以接受檔案拖放訊息,只有具有ws ex accep...