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

来源:互联网 发布:2寸照片剪裁软件 编辑:程序博客网 时间:2024/06/06 03:07

一.在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,指定一个字串缓冲区,长度至少为nSizenSize 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 0
原创粉丝点击