MFC程序?qū)ξ募奶幚矸椒?/h1>
來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次
對(duì)文件的處理是MFC程序設(shè)計(jì)中非常常見的應(yīng)用。本文就以實(shí)例形式做一簡(jiǎn)單敘述。具體方法如下:
1.CFileDialog的應(yīng)用
格式如下:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
具體參數(shù)解釋如下:
bOpenFileDialog 為TRUE則顯示打開對(duì)話框,為FALSE則顯示保存對(duì)話文件對(duì)話框。
lpszDefExt 指定默認(rèn)的文件擴(kuò)展名。
lpszFileName 指定默認(rèn)的文件名。
dwFlags 指明一些特定風(fēng)格。
lpszFilter 是最重要的一個(gè)參數(shù),它指明可供選擇的文件類型和相應(yīng)的擴(kuò)展名。參數(shù)格式如:
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第一個(gè)參數(shù)為FALSE時(shí),顯示保存對(duì)話框,為TRUE時(shí),顯示打開對(duì)話框
(2)文件類型說明和擴(kuò)展名間用 | 分隔,同種類型文件的擴(kuò)展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明,否則會(huì)造成亂碼
獲取保存的文件名稱:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目錄名和擴(kuò)展名
CString CFileDialog::GetFileName( ) 得到完整的文件名
CString CFileDialog::GetExtName( ) 得到完整的文件擴(kuò)展名
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,包括目錄名和擴(kuò)展名
POSITION CFileDialog::GetStartPosition( ) 對(duì)于選擇了多個(gè)文件的情況得到第一個(gè)文件位置
2.向.CSV文件寫入
由于向.CSV文件中寫入的內(nèi)容打開時(shí)是以表格的形式展現(xiàn),所以在大多數(shù)以結(jié)構(gòu)體保存到文件中,以文件的形式查看內(nèi)容時(shí)比較常用。
這里需要注意的是:
(1)如果像一般文件那樣寫入,查看文件時(shí)很明顯都是以雙字節(jié)存入的,導(dǎo)致查看問題,所以我在這個(gè)地方使用CStdioFilel類,最后可以使用WriteString()將字符寫入到文件中
(2)當(dāng)字符中出現(xiàn)中文后,導(dǎo)致中文后面的內(nèi)容全部無法寫入到文件中,這時(shí)需要在寫入文件WriteString()之前加一句setlocale( LC_CTYPE, "chs" );
(3)當(dāng)一個(gè)表格中字符完成后,需要在字符串后面添加‘,',需要換行時(shí),需要在字符串后面加上‘\r\n';
例如:
strTemp.Format(_T("%s,"),lvcol.pszText);
strTemp.Format(_T("%s\r\n"),lvcol.pszText);
(4)一般情況下,使用CString將要寫入文件中的內(nèi)容全部保存后,在一起寫入文件;
具體代碼如下:
CString strEx;
strEx += strTemp;
希望本文所述實(shí)例對(duì)大家的MFC程序設(shè)計(jì)有所幫助。
對(duì)文件的處理是MFC程序設(shè)計(jì)中非常常見的應(yīng)用。本文就以實(shí)例形式做一簡(jiǎn)單敘述。具體方法如下:
1.CFileDialog的應(yīng)用
格式如下:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
具體參數(shù)解釋如下:
bOpenFileDialog 為TRUE則顯示打開對(duì)話框,為FALSE則顯示保存對(duì)話文件對(duì)話框。
lpszDefExt 指定默認(rèn)的文件擴(kuò)展名。
lpszFileName 指定默認(rèn)的文件名。
dwFlags 指明一些特定風(fēng)格。
lpszFilter 是最重要的一個(gè)參數(shù),它指明可供選擇的文件類型和相應(yīng)的擴(kuò)展名。參數(shù)格式如:
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第一個(gè)參數(shù)為FALSE時(shí),顯示保存對(duì)話框,為TRUE時(shí),顯示打開對(duì)話框
(2)文件類型說明和擴(kuò)展名間用 | 分隔,同種類型文件的擴(kuò)展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明,否則會(huì)造成亂碼
獲取保存的文件名稱:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目錄名和擴(kuò)展名
CString CFileDialog::GetFileName( ) 得到完整的文件名
CString CFileDialog::GetExtName( ) 得到完整的文件擴(kuò)展名
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,包括目錄名和擴(kuò)展名
POSITION CFileDialog::GetStartPosition( ) 對(duì)于選擇了多個(gè)文件的情況得到第一個(gè)文件位置
2.向.CSV文件寫入
由于向.CSV文件中寫入的內(nèi)容打開時(shí)是以表格的形式展現(xiàn),所以在大多數(shù)以結(jié)構(gòu)體保存到文件中,以文件的形式查看內(nèi)容時(shí)比較常用。
這里需要注意的是:
(1)如果像一般文件那樣寫入,查看文件時(shí)很明顯都是以雙字節(jié)存入的,導(dǎo)致查看問題,所以我在這個(gè)地方使用CStdioFilel類,最后可以使用WriteString()將字符寫入到文件中
(2)當(dāng)字符中出現(xiàn)中文后,導(dǎo)致中文后面的內(nèi)容全部無法寫入到文件中,這時(shí)需要在寫入文件WriteString()之前加一句setlocale( LC_CTYPE, "chs" );
(3)當(dāng)一個(gè)表格中字符完成后,需要在字符串后面添加‘,',需要換行時(shí),需要在字符串后面加上‘\r\n';
例如:
strTemp.Format(_T("%s,"),lvcol.pszText); strTemp.Format(_T("%s\r\n"),lvcol.pszText);
(4)一般情況下,使用CString將要寫入文件中的內(nèi)容全部保存后,在一起寫入文件;
具體代碼如下:
CString strEx; strEx += strTemp;
希望本文所述實(shí)例對(duì)大家的MFC程序設(shè)計(jì)有所幫助。
上一篇:數(shù)據(jù)結(jié)構(gòu)之位圖(bitmap)詳解
欄 目:C語(yǔ)言
本文標(biāo)題:MFC程序?qū)ξ募奶幚矸椒?/a>
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3431.html
您可能感興趣的文章
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 01-10使用OpenGL實(shí)現(xiàn)3D立體顯示的程序代碼
- 01-10基于C程序啟動(dòng)代碼的深入分析
- 01-10基于errno返回值的對(duì)應(yīng)錯(cuò)誤碼的詳細(xì)介紹
- 01-10探討:程序在內(nèi)存中的分配(常量,局部變量,全局變量,程序代碼)問
- 01-10用C++實(shí)現(xiàn)隊(duì)列的程序代碼
- 01-10基于C/C++時(shí)間函數(shù)的使用詳解
- 01-10VC對(duì)自定義資源加密解密(AES)的詳解
- 01-10C語(yǔ)言程序設(shè)計(jì)50例(經(jīng)典收藏)
- 01-10對(duì)C語(yǔ)言中遞歸算法的深入解析


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置