雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

MFC程序?qū)ξ募奶幚矸椒?/h1>
來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

對文件的處理是MFC程序設(shè)計中非常常見的應(yīng)用。本文就以實例形式做一簡單敘述。具體方法如下:

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則顯示打開對話框,為FALSE則顯示保存對話文件對話框。
lpszDefExt 指定默認的文件擴展名。
lpszFileName 指定默認的文件名。
dwFlags 指明一些特定風(fēng)格。
lpszFilter 是最重要的一個參數(shù),它指明可供選擇的文件類型和相應(yīng)的擴展名。參數(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第一個參數(shù)為FALSE時,顯示保存對話框,為TRUE時,顯示打開對話框

(2)文件類型說明和擴展名間用 | 分隔,同種類型文件的擴展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明,否則會造成亂碼

獲取保存的文件名稱:

CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目錄名和擴展名

CString CFileDialog::GetFileName( ) 得到完整的文件名

CString CFileDialog::GetExtName( ) 得到完整的文件擴展名

CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,包括目錄名和擴展名

POSITION CFileDialog::GetStartPosition( ) 對于選擇了多個文件的情況得到第一個文件位置

2.向.CSV文件寫入

由于向.CSV文件中寫入的內(nèi)容打開時是以表格的形式展現(xiàn),所以在大多數(shù)以結(jié)構(gòu)體保存到文件中,以文件的形式查看內(nèi)容時比較常用。

這里需要注意的是:

(1)如果像一般文件那樣寫入,查看文件時很明顯都是以雙字節(jié)存入的,導(dǎo)致查看問題,所以我在這個地方使用CStdioFilel類,最后可以使用WriteString()將字符寫入到文件中

(2)當(dāng)字符中出現(xiàn)中文后,導(dǎo)致中文后面的內(nèi)容全部無法寫入到文件中,這時需要在寫入文件WriteString()之前加一句setlocale( LC_CTYPE, "chs" );

(3)當(dāng)一個表格中字符完成后,需要在字符串后面添加‘,',需要換行時,需要在字符串后面加上‘\r\n';

例如:

strTemp.Format(_T("%s,"),lvcol.pszText);
strTemp.Format(_T("%s\r\n"),lvcol.pszText);

(4)一般情況下,使用CString將要寫入文件中的內(nèi)容全部保存后,在一起寫入文件;

具體代碼如下:

CString strEx; 
strEx += strTemp;

希望本文所述實例對大家的MFC程序設(shè)計有所幫助。

上一篇:數(shù)據(jù)結(jié)構(gòu)之位圖(bitmap)詳解

欄    目:C語言

下一篇:深入分析C++中聲明與定義的區(qū)別

本文標題:MFC程序?qū)ξ募奶幚矸椒?/a>

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3431.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有