配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。它们不是在程序中进行硬编码,而是用户可配置的,通常存储在纯文本文件中。

写配置文件

使用函数WritePrivateProfileStringW写配置文件

BOOL WritePrivateProfileStringW([in] LPCWSTR lpAppName,[in] LPCWSTR lpKeyName,[in] LPCWSTR lpString,[in] LPCWSTR lpFileName
);
  • 参数lpAppName

表示ini文件中的一个字段名(节名),可以有很多节名

  • 参数lpKeyName

表示lpAppName下的一个键名

  • 参数lpString

表示键值,也就是变量的值

  • 参数lpFileName

表示完整的ini文件名

读配置文件

使用GetPrivateProfileStringW读取配置文件

DWORD GetPrivateProfileStringW([in]  LPCWSTR lpAppName,[in]  LPCWSTR lpKeyName,[in]  LPCWSTR lpDefault,[out] LPWSTR  lpReturnedString,[in]  DWORD   nSize,[in]  LPCWSTR lpFileName
);
  • 参数lpAppName

表示INI文件中的一个字段名(节名)。如果此参数为NULL,则函数会将文件中的所有节名复制到提供的缓冲区。

  • 参数lpKeyName

要检索其关联字符串的键的名称。如果此参数为NULL,lpAppName参数指定的节中的所有键名称都将复制到lpReturnString参数指定的缓冲区中。

  • 参数lpDefault

默认字符串。如果在初始化文件中找不到lpKeyName键,GetPrivateProfileString会将默认字符串复制到lpReturnString缓冲区。如果此参数为NULL,则默认值为空字符串 “”。避免指定带有尾随空白字符的默认字符串。该函数在lpReturnString缓冲区中插入一个字符,以去除任何尾随空格。

  • 参数lpReturnedString

表示指向接收缓冲区的指针。

  • 参数nSize

表示指向的缓冲区的大小(以字符为单位)。

  • 参数lpFileName

初始化文件的名称。如果此参数不包含文件的完整路径,系统将在 Windows 目录中搜索该文件。

Demo示例

写配置文件

通过GetCurrentDirectory获取当前程序所在目录,在当前目录下创建INI文件。

//读写配置文件void CMyFileCFileView::OnWriteConfig() {//获取当前路径WCHAR strPath[MAX_PATH] = { 0 };GetCurrentDirectoryW(MAX_PATH, strPath);CString strFilePath;strFilePath.Format(L"%ls//Test.ini", strPath);    //字符串拼接WritePrivateProfileStringW(L"metada", L"title", L"搜狗双拼", strFilePath); //段名、键名、内容WritePrivateProfileStringW(L"声母", L"ch", L"I", strFilePath);WritePrivateProfileStringW(L"声母", L"sh", L"U", strFilePath);
}

读配置文件

读取配置文件,通过TRACE将读取的值显示出来。

//读配置文件
void CMyFileCFileView::OnReadConfig() {WCHAR strPath[MAX_PATH] = { 0 };WCHAR strTitle[MAX_PATH] = { 0 };WCHAR strCh[MAX_PATH] = { 0 };WCHAR strSh[MAX_PATH] = { 0 };//获取当前路径GetCurrentDirectoryW(MAX_PATH, strPath);TRACE("## strPath = %ls", strPath);CString strFilePath;strFilePath.Format(L"%ls//Test.ini", strPath);  //字符串拼接DWORD dwNum1 = GetPrivateProfileStringW(L"metada", L"title", NULL,strTitle, MAX_PATH, strFilePath);DWORD dwNum2 = GetPrivateProfileStringW(L"声母", L"ch", NULL,strCh, MAX_PATH, strFilePath);DWORD dwNum3 = GetPrivateProfileStringW(L"声母", L"sh", NULL,strSh, MAX_PATH, strFilePath);TRACE("#dwNum1 = %d , dwNum2 = %d , dwNum3 = %d", dwNum1, dwNum2, dwNum3);USES_CONVERSION;char* szTitle = W2A(strTitle);char* szSh = W2A(strSh);char* szCh = W2A(strCh);TRACE("#strTitle = %s , strCh = %s , strSh = %s", szTitle, szCh, szSh);
}

Config配置文件读写相关推荐

  1. WPF读写config配置文件

    WPF读写config配置文件单. 1. 在你的工程中,添加app.config文件.文件的内容默认为: 1 <?xml version="1.0" encoding=&qu ...

  2. Winform—C#读写config配置文件

    现在FrameWork2.0以上使用的是:ConfigurationManager或WebConfigurationManager.并且AppSettings属性是只读的,并不支持修改属性值. 一.如 ...

  3. C#读写config配置文件

    应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序. 对于一个config ...

  4. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    原文:.NET平台开源项目速览(1)SharpConfig配置文件读写组件 在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.Config ...

  5. .NET配置文件读写实例(附SosoftConfigHelper类)

    配置文件在软件开发中起到举足轻重的作用,可以说不可或缺..NET程序可使用.config文件作为配置文件,例如WinForm程序的*.app.config.Web程序的web.config..conf ...

  6. 我的INI 配置文件读写动态库

    工作需要,今天上午花时间看了一下INI 配置文件的相关文章,并添加到项目中. 后来想想,干脆封装成DLL 动态库,并提供给大家使用,顺便更新一下博客.^_^ INI 配置文件的格式 在早期的Windo ...

  7. 【机房重构】关于App.config配置文件

    App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序. 配置文件的根节点是 ...

  8. 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分

    利用 yaml-cpp 开源库读写 yaml 配置文件-- 读写部分 YAML文件解析 Node 读写yaml文件 config.yaml内容 test_yaml.cpp文件内容 重要内容简单解释 n ...

  9. c语言——配置文件读写

    目录 c语言--配置文件读写 代码 头文件 主文件 工具类 判断当前行是否有效 获得文件有效行数 加载配置文件 解析配置文件 获得指定配置信息 释放配置文件信息 总的代码 配置文件 c语言--配置文件 ...

最新文章

  1. 利用phpmailer类邮件发送
  2. python数据分析工具包_脑成像数据分析:Python工具包
  3. 2012传统行业转型年:整合拓展互联网发展渠道
  4. 如何使用 C# 中的 HashSet
  5. 真正的动态声明性组件
  6. 数学建模亚太赛优秀论文_2019亚太地区大学生数学建模竞赛志愿者等级评定结果公布!...
  7. php 判断 in,tinkphp常用判断条件in、notin、between、AND、OR
  8. 【AJAX】AJAX实现搜索信息自己主动推荐并补全
  9. Linux定时任务:crontab安装与检查
  10. 02 掌握变量的定义和使用方法 1214
  11. 网站开发常用链接信息
  12. uni-app 编译后微信h5打开APP,并且打开相应的页面
  13. USB大容量存储类规范概述
  14. 华师大学 计算机 调剂,2020华南师范大学调剂公告
  15. 【图文并茂】手把手教你重装Win10系统
  16. 《深入理解计算机系统》之浅析程序性能优化
  17. 微信群满100人后无法扫码进群?你们要的解决方法来了!
  18. ubuntu 关闭系统自动更新
  19. 0DAY零距离(很经典的一片文章,找了好久)
  20. 面向对象程序综合设计 课程设计——僵尸危机

热门文章

  1. The mell hall——坑爹
  2. MotionBuilder Python Tools UI创建
  3. N进制到M进制-C语言
  4. mysql电商类查询_GitHub - cntianjue/Estore: JavaWEB电商项目(mysql)
  5. C++实验一:类与对象——电梯
  6. FreeXFrameWork简介
  7. QtCharts绘制动态心电图[1]——初步应用
  8. MySQL_高级_笔记
  9. 使用roslaunch启动Gazebo、world文件和URDF模型
  10. 什么是AQ,你知道吗?