MFC中对INI文件的读写操作总结

在南京第二家公司刚接触到在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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值