在南京第二家公司刚接触到在MFC下读写INI配置文件,下面介绍一下关于如何去读写INI配置文件吧。
首先说明一下配置文件的格式:
例如:
[COUNT]
COUNT=6
[LONGIN]
USER=admin
[INFO1]
BANK=中国银行
ASSIGNPATH=中国银行\{YYYYMMDD}\
ACCESSPATH=D:\中国银行\{YYYYMMDD}\
[INFO2]
BANK=招商银行
ASSIGNPATH=招商银行\{YYYYMMDD}\
ACCESSPATH=D:\招商银行\{YYYYMMDD}\
......//继续添加自己的变量或域名
......//继续添加自己的变量或域名
其中:[COUNT]、[LONGIN]、[INFO1]、[INFO2] 是配置文件的域名,而COUNT、USER、BANK、ASSIGNPATH、ACCESSPATH是变量名。
下面介绍一下几个读写INI配置文件的函数:
1.
功能:从指定的INI文件中获取一个域名下的整形变量的值。
说明:参数1:域名;参数2:变量名;参数3:初始化值,一般为0;参数4:INI文件的绝对路径。
UINT GetPrivateProfileInt( LPCTSTR lpAppName, // section name LPCTSTR lpKeyName, // key name INT nDefault, // return value if key name not found LPCTSTR lpFileName // initialization file name );
2.
功能:从指定的INI文件中获取一个域名下的CString类型变量的值。
说明:参数1:指定的域名;参数2:指定的变量名;参数3:初始化值,一般为"";参数4:保存读取的变量缓冲区;参数5:缓冲区的大小;参数6:INI文件的绝对路径。
DWORD GetPrivateProfileString( LPCTSTR lpAppName, // section name LPCTSTR lpKeyName, // key name LPCTSTR lpDefault, // default string LPTSTR lpReturnedString, // destination buffer DWORD nSize, // size of destination buffer LPCTSTR lpFileName // initialization file name );
3.
功能:向指定的INI文件中写一个指定的域名,指定的变量名的字符串数据。
说明:参数1:指定的域名;参数2:指定的变量名;参数3:变量字符串数据;参数4:指定INI文件的绝对路径。
BOOL WritePrivateProfileString( LPCTSTR lpAppName, // section name LPCTSTR lpKeyName, // key name LPCTSTR lpString, // string to add LPCTSTR lpFileName // initialization file );
举例说明:
//读取INI文件
CString user = "";
CString session = "",assignpath = "",accesspath = "";
int count = GetPrivateProfileInt("COUNT","COUNT",0,"D:\\测试\\server.ini");
GetPrivateProfileString("LOGIN","USER","", user.GetBuffer(255),255,"D:\\测试\\server.ini");
user.ReleaseBuffer();
for(int i = 0;i < count;i++)
{
session.Format("INFO%d",i+1);
GetPrivateProfileString(session,"BANK","", bank.GetBuffer(255),255,“D:\\测试\\server.ini”);
bank.ReleaseBuffer(); //要将缓冲区进行释放哦
GetPrivateProfileString(session,"ASSIGNPATH","", assignpath.GetBuffer(255),255,“D:\\测试\\server.ini”);
assignpath.ReleaseBuffer(); //要将缓冲区进行释放哦
GetPrivateProfileString(session,"ACCESSPATH","", accesspath.GetBuffer(255),255,“D:\\测试\\server.ini”);
accesspath.ReleaseBuffer(); //要将缓冲区进行释放哦
}
//向INI文件写数据:
CString strTemp = “”;
int count = m_ListCtrl.GetItemCount();
strTemp.Format("%d",count);
WritePrivateProfileString("COUNT", "COUNT", strTemp, “D:\\测试\\server.ini”);
for(int i = 0; i < count; i++)
{
CString session, bank, passwd, assignpath, accesspath;
session.Format("INFO%d",i+1);
bank= m_ListCtrl.GetItemText(i,0);
WritePrivateProfileString(session, "BANK", bank, “D:\\测试\\server.ini”);
assignpath = m_ListCtrl.GetItemText(i,1);
WritePrivateProfileString(session, "ASSIGNPATH", assignpath, “D:\\测试\\server.ini”);
accesspath = m_ListCtrl.GetItemText(i,2);
WritePrivateProfileString(session, "ACCESSPATH", accesspath, “D:\\测试\\server.ini”);
}
好了,关于读写INI文件就介绍到这里,如果大家有什么问题请直接联系我,或者哪里讲错了都可以联系我。新浪邮箱:chao_song2011@sina.cn