欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

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

发布时间:2025/3/15 c/c++ 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 hereCString 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"), _T(""),strName.GetBuffer(MAX_PATH),MAX_PATH,strPath);::GetPrivateProfileString(_T("StudentInfo"), _T("Age"), _T(""),strAge.GetBuffer(MAX_PATH),MAX_PATH, strPath);::GetPrivateProfileString(_T("StudentInfo"), _T("Sex"), _T(""),strSex.GetBuffer(MAX_PATH),MAX_PATH, strPath);::GetPrivateProfileString(_T("StudentInfo"), _T("Grade"), _T(""),strGrade.GetBuffer(MAX_PATH),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 hereCString strClass, strName, strAge, strSex, 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"), _T("Class"), strClass, strPath);::WritePrivateProfileString(_T("StudentInfo"), _T("Name"), strName, strPath);::WritePrivateProfileString(_T("StudentInfo"), _T("Age"), strAge, strPath);::WritePrivateProfileString(_T("StudentInfo"), _T("Sex"), strSex, strPath);::WritePrivateProfileString(_T("StudentInfo"), _T("Grade"), strGrade,strPath); }

三:配置文件格式

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

四: 如下需要注意下

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

    新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!

    总结

    以上是生活随笔为你收集整理的VC++中实现INI文件读写的方法和示例的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。