MFC中使用ini文件

来源:互联网 发布:城市地质数据涉及 编辑:程序博客网 时间:2024/05/16 02:56

转自: http://blog.csdn.net/sea_spray/archive/2010/02/22/5318075.aspx

首先,我们要添加一个头文件,具体操作以前已经介绍,不妨命名为iniconfig.h,此后在里面定义一个类:

#ifndef _INICONFIG_H

#define _INICONFIG_H

#include

#include

class CIniConfig

{

public:

CIniConfig(char* file)

{

strcpy(file_name, file);

}

// getter

unsigned GetNumber(char* section_name, char* key_name)

{

return GetPrivateProfileIntA(section_name, key_name, 0, file_name);

}

void GetString(char* section_name, char* key_name, char* out_buf)

{

GetPrivateProfileStringA(section_name, key_name, "", out_buf, 100, file_name);

}

// setter

void SetNumber(char* section_name, char* key_name, unsigned val)

{

char buf[100] = { 0 };

sprintf(buf, "%d", val);

WritePrivateProfileStringA(section_name, key_name, buf, file_name);

}

void SetString(char* section_name, char* key_name, char* in_buf)

{

WritePrivateProfileStringA(section_name, key_name, in_buf, file_name);

}

private:

char file_name[MAX_PATH];

};

#endif // _INICONFIG_H

接着,在源程序中要包含这个类#include "iniconfig.h",对"写入ini"按钮进行操作,用这个类定义变量CIniConfig m_ini(szIniPath);但是我们还要寻找路径以便存放ini文件GetCurrentDirectory(MAX_PATH, szIniPath); lstrcat(szIniPath, "//a.ini");这两句是获得当前程序的路径并设置ini文件的存放路径,其中ini文件命名为a.ini,然后使用以下 m_ini.SetString("section1", "key1", "value1");

m_ini.SetString("section1", "key2", "value");

m_ini.SetString("section2", "key1", "value2");

m_ini.SetNumber("section2", "key2", 22);

再就是"读取ini"按钮的操作为,

char szValue[50] = {0};

GetCurrentDirectory(MAX_PATH, szIniPath);

lstrcat(szIniPath, "//a.ini");

CIniConfig m_ini(szIniPath);

m_ini.GetString("section1", "key1", szValue);

MessageBox(szValue, NULL, MB_OK);

int iValue;

iValue = m_ini.GetNumber("section2", "key2");

sprintf(szValue, "%d", iValue);

MessageBox(szValue, NULL, MB_OK);

最后运行一下程序,然后使用一下。这里说明一下函数sprintf函数在转换变量类型时用途很大,可以在平时多注意使用该函数,比其他的强制转换要好的多,也不用记得那么复杂,就一个函数,知道怎样使用,在变量转换类型时就能灵活自如。

Powered by Zoundry Raven

原创粉丝点击