MFC中用c++语言对配置文件操作(读、写)

一.在VS2015中创建新项目->MFC应用程序->基于对话框
这里写图片描述
二.在对话框中添加两个Button控件,分别更名为:读配置文件、写配置文件,再添加一个Edit编辑框
这里写图片描述
三.双击“读配置文件”Button进入代码编写,添加如下代码:

void CConfigurationFileDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    char tServerip[MAX_PATH] = { 0 };
    DWORD dret = GetPrivateProfileString(_T("serverinfo"), _T("addr"), _T("du cuo le"), tServerip, 50, _T("D:\\VSProject\\ConfigurationFile\\Release\\config.ini"));
    m_serverip = tServerip;
    m_port = GetPrivateProfileInt(_T("serverinfo"), _T("port"), -1, _T("D:\\VSProject\\ConfigurationFile\\Release\\config.ini"));

    CFile   file1("D:\\VSProject\\ConfigurationFile\\Release\\config.ini ", CFile::modeRead);
    char   *pBuf;
    int   iLen = file1.GetLength();
    pBuf = new   char[iLen + 1];
    file1.Read(pBuf, iLen);
    pBuf[iLen] = 0;
    file1.Close();
    SetDlgItemText(IDC_EDIT_TEST, pBuf);
}

四.双击“写配置文件”进入代码编写,添加如下代码:

void CConfigurationFileDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码
    BOOL Bw1 = WritePrivateProfileString(_T("serverinfo"), _T("addr"), "192.168.0.2", _T("D:\\VSProject\\ConfigurationFile\\Release\\config.ini"));
    BOOL Bw2 = WritePrivateProfileString(_T("serverinfo"), _T("port"), "81", _T("D:\\VSProject\\ConfigurationFile\\Release\\config.ini"));
    if (!Bw2)
        ::MessageBox(NULL,_T("写入失败"),_T("失败"),0);
    else
        ::MessageBox(NULL,_T("写入成功"),_T("成功"),0);
}

注意:在读文件时也要双击一下Edit编辑框,否则无法找到IDC_EDIT_TEST
*重要函数:GetPrivateProfileString//为初始化文件中指定的条目取得字串,是编辑语言中的一种函数结构。
函数原型:

DWORD GetPrivateProfileString(lpszSection, lpszKey, lpszDefault,lpReturnedString, cchReturnBuffer, lpszFile)

参数及类型说明:

lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表。
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表
lpDefault String,指定的条目没有找到时返回的默认值。可设为空("")
lpReturnedString String,指定一个字串缓冲区,长度至少为nSize
nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量
lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件

*重要函数:SetDlgItemTex//在对话框中设置控件的标题或文本。
语法:

BOOL WINAPI SetDlgItemText(
  _In_ HWND hDlg,
  _In_  int      nIDDlgItem,
  _In_ LPCTSTR lpString
);

参数:

hDlg [in]
类型:HWND
包含该控件的对话框的句柄。
nIDDlgItem [in]
类型:int
要设置标题或文本的控件。
lpString [in]
类型:LPCTSTR
要复制到控件的文本。

返回值:

类型:BOOL
如果函数成功,则返回值为非零。
如果函数失败,返回值为零。要获得扩展错误信息,请调用GetLastError。

*重要函数:WritePrivateProfileString//将一个字符串复制到初始化文件的指定部分。
语法:

BOOL WINAPI WritePrivateProfileString(
  _In_ LPCTSTR lpAppName,
  _In_ LPCTSTR lpKeyName,
  _In_ LPCTSTR lpString,
  _In_ LPCTSTR lpFileName
);

参数:

lpAppName [in]
字符串将被复制到的部分的名称。如果该部分不存在,则创建该部分。该部分的名称是与案例无关的; 该字符串可以是大写和小写字母的任意组合。
lpKeyName [in]
与字符串关联的键的名称。如果指定部分中不存在该键,则会创建该键。如果此参数为NULL,则删除整个部分(包括该部分中的所有条目)。
lpString [in]
一个零封端的字符串写入文件。如果此参数为NULL,则删除由lpKeyName参数指向的键。
lpFileName [in]
初始化文件的名称。
如果该文件是使用Unicode字符创建的,则该函数会将Unicode字符写入该文件。否则,该函数将写入ANSI字符。

返回值:

如果函数成功地将字符串复制到初始化文件中,则返回值不为零。
如果函数失败,或者刷新最近访问的初始化文件的缓存版本,则返回值为零。要获得扩展错误信息,请调用 GetLastError。

O(∩_∩)O哈哈~到这对配置文件的读写操作就算完了

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值