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("导出参数成功!"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飛越無限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值