C++ MFC 通过文件对话框读写INI 文件

C++ MFC 通过文件对话框读写INI 文件

本文详细介绍C++ MFC 读写INI文件,以及如何操作文件对话框:


读取ini文件

    BOOL isOpen = TRUE;     //是否打开(否则为保存)  
    CString defaultDir = L"C:\\";   //默认打开的文件路径  
    CString fileName = L"";         //默认打开的文件名  
    CString filter = L"文件 (*.ini; *.cfg)|*.ini;*.cfg||";   //文件过虑的类型  
    CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_READONLY, filter, NULL);  
    openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.ini";  
    INT_PTR result = openFileDlg.DoModal();  
    CString filePath = defaultDir + _T("\\test.ini");  
    if(result == IDOK) {  
        filePath = openFileDlg.GetPathName();  
    }else{
        return;
    } 
    //读取采集参数配置文件 
    int iTmp;
    iTmp = GetPrivateProfileInt(_T("ACQPARAM"),_T("ACQCLK") , 0, filePath);
    m_AcqClkSrc.SetCurSel(iTmp);
    CString sTmp;
GetPrivateProfileString(_T("ACQPARAM"),_T("EXCLKFRE"),_T(""),sTmp.GetBuffer(256),256,filePath);
    m_ExtrFre = _wtof(sTmp);  //转double  赋值给界面
GetPrivateProfileString(_T("ACQPARAM"),_T("CHUNIT"),_T(""),m_Unit.GetBuffer(256),256,filePath);
    UpdateData(FALSE); //刷新界面

写入ini文件

    BOOL isOpen = FALSE;        //是否打开(否则为保存)  
    CString defaultDir = L"C:\\";   //默认打开的文件路径  
    CString fileName = L"test.ini";         //默认打开的文件名  
    CString filter = L"文件 (*.ini; *.cfg)|*.ini;*.cfg||";   //文件过虑的类型  
    CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, filter, NULL);  
    openFileDlg.GetOFN().lpstrInitialDir = L"C:\\test.ini";  
    INT_PTR result = openFileDlg.DoModal();  
    CString filePath = defaultDir + _T("\\") + fileName;  
    if(result == IDOK) {  
        filePath = openFileDlg.GetPathName();  
    }else{
        return;
    } 
    TCHAR buf[256];
    CString stmp;
    wsprintf(buf, _T("%d"), m_AcqClkSrc.GetCurSel());
    WritePrivateProfileString(_T("ACQPARAM"), _T("ACQCLK"), buf, filePath);

    stmp.Format(_T("%f"),m_ExtrFre);
    wsprintf(buf, _T("%s"), stmp.GetBuffer(stmp.GetLength()));  
    WritePrivateProfileString(_T("ACQPARAM"), _T("EXCLKFRE"), buf, filePath);

    wsprintf(buf, _T("%d"), m_AcqFre.GetCurSel());
    WritePrivateProfileString(_T("ACQPARAM"), _T("ACQFRE"), buf, filePath);

    stmp.Format(_T("%f"),m_Len);
    wsprintf(buf, _T("%s"), stmp.GetBuffer(stmp.GetLength()));  
    WritePrivateProfileString(_T("ACQPARAM"), _T("ACQLEN"), buf, filePath);

    stmp.Format(_T("%f"),m_Dly);
    wsprintf(buf, _T("%s"), stmp.GetBuffer(stmp.GetLength()));  
    WritePrivateProfileString(_T("ACQPARAM"), _T("DLGLEN"), buf, filePath);

    wsprintf(buf, _T("%d"), m_Rg.GetCurSel());
    WritePrivateProfileString(_T("ACQPARAM"), _T("ACQRG"), buf, filePath);

    wsprintf(buf, _T("%d"), m_Cpl);
    WritePrivateProfileString(_T("ACQPARAM"), _T("CPL"), buf, filePath);

    wsprintf(buf, _T("%d"), m_Filter.GetCurSel());
    WritePrivateProfileString(_T("ACQPARAM"), _T("FILTERFRE"), buf, filePath);
    stmp.Format(_T("%f"),m_K);
    wsprintf(buf, _T("%s"), stmp.GetBuffer(stmp.GetLength()));  
    WritePrivateProfileString(_T("ACQPARAM"), _T("KVALUE"), buf, filePath);
    WritePrivateProfileString(_T("ACQPARAM"), _T("OFFSET"), buf, filePath);
    wsprintf(buf, _T("%s"), m_UnitFlag);
    WritePrivateProfileString(_T("ACQPARAM"), _T("CHUNITFLAG"), buf, filePath);
    AfxMessageBox(_T("导出参数成功!"));

猜你喜欢

转载自blog.csdn.net/zuoyuexian/article/details/79657898
今日推荐