VC++中实现INI文件读写的方法和示例

一:读ini配置文件

DWORD GetPrivateProfileString(
    LPCTSTR lpAppName, 
    LPCTSTR lpKeyName, 
    LPCTSTR lpDefault, 
    LPTSTR lpReturnedString, 
    DWORD nSize, 
    LPCTSTR lpFileName 
);

其中各参数的意义: 

  • 前二个参数与 WritePrivateProfileString中的意义一样.
  • lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量. 
  • lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
  • nSize : 目的缓存器的大小.
  • lpFileName : 是完整的INI文件名.

代码实现演示:

void CIniFileDemoDlg::OnBnClickedButton1()//read
{
	// TODO: Add your control notification handler code here
	CString strClass,strName,strAge,strSex,strGrade;
	CString strPath=_T("D:\\test\\demo.ini");
 
	::GetPrivateProfileString(_T("StudentInfo"),_T("Class"),_T(""),strClass.GetBuffer(MAX_PATH),MAX_PATH,strPath);
	::GetPrivateProfileString(_T("StudentInfo"),_T("Name"),strName.GetBuffer(MAX_PATH),_T("Age"),strAge.GetBuffer(MAX_PATH),_T("Sex"),strSex.GetBuffer(MAX_PATH),_T("Grade"),strGrade.GetBuffer(MAX_PATH),strPath);
 
	SetDlgItemText(IDC_EDIT1,strClass);
	SetDlgItemText(IDC_EDIT2,strName);
	SetDlgItemText(IDC_EDIT3,strAge);
	SetDlgItemText(IDC_EDIT4,strSex);
	SetDlgItemText(IDC_EDIT5,strGrade);
}

二:写ini配置文件

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

其中各参数的意义:

  • LPCTSTR lpAppName 是INI文件中的一个字段名.
  • LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.
  • LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.
  • LPCTSTR lpFileName 是完整的INI文件名.
void CIniFileDemoDlg::OnBnClickedButton2()//writer
{
	// TODO: Add your control notification handler code here
	CString strClass,strGrade;
	CString strPath=_T("D:\\test\\demo.ini");

	GetDlgItemText(IDC_EDIT1,strClass);
	GetDlgItemText(IDC_EDIT2,strName);
	GetDlgItemText(IDC_EDIT3,strAge);
	GetDlgItemText(IDC_EDIT4,strSex);
	GetDlgItemText(IDC_EDIT5,strGrade);

	::WritePrivateProfileString(_T("StudentInfo"),strClass,strPath);
	::WritePrivateProfileString(_T("StudentInfo"),strGrade,strPath);
}

三:配置文件格式

[StudentInfo]
Class=2012
Name=jake
Age=22
Sex=女
Grade=优秀

四: 如下需要注意下

  1. INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回 FALSE 值.
  2. 文件名的路径中必须为 \\,因为在VC++中,\\ 才表示一个 \ .
  3. 也可将INI文件放在程序所在目录,此时 lpFileName 参数为: ".\\demo.ini".
  4. 如果配置文件中有中文字符,需要修改下配置文件的格式。例如将配置文件重新命名为ASCII码格式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐