MFC法式對文件的處置辦法。本站提示廣大學習愛好者:(MFC法式對文件的處置辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是MFC法式對文件的處置辦法正文
對文件的處置是MFC法式設計中異常罕見的運用。本文就以實例情勢做一簡略論述。詳細辦法以下:
1.CFileDialog的運用
格局以下:
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則顯示保留對話文件對話框。
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)文件類型解釋和擴大名間用 | 分隔,同品種型文件的擴大名間可以用 ; 朋分,每種文件類型間用 | 分隔,末尾用 || 指明,不然會形成亂碼
獲得保留的文件稱號:
CString CFileDialog::GetPathName( ) 獲得完全的文件名,包含目次名和擴大名
CString CFileDialog::GetFileName( ) 獲得完全的文件名
CString CFileDialog::GetExtName( ) 獲得完全的文件擴大名
CString CFileDialog::GetFileTitle ( ) 獲得完全的文件名,包含目次名和擴大名
POSITION CFileDialog::GetStartPosition( ) 關於選擇了多個文件的情形獲得第一個文件地位
2.向.CSV文件寫入
因為向.CSV文件中寫入的內容翻開時是以表格的情勢展示,所以在年夜多半以構造體保留到文件中,以文件的情勢檢查內容時比擬經常使用。
這裡須要留意的是:
(1)假如像普通文件那樣寫入,檢查文件時很顯著都是以雙字節存入的,招致檢查成績,所以我在這個處所應用CStdioFilel類,最初可使用WriteString()將字符寫入到文件中
(2)當字符中湧現中文後,招致中文前面的內容全體沒法寫入到文件中,這時候須要在寫入文件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法式設計有所贊助。