很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又实用。下面对其使用进行总结:

一、将信息从ini文件中读取到变量中

首先,看一个ini文件的示例。

[连接参数]
IpServer=127.0.0.1
DataBase=DB_TEST
UserID=test
Password=123456
;注释用英文分号

以上就是一个简单的配置文档。读取信息所用的函数为

DWORD GetPrivateProfileString(LPCTSTR lpAppName,        // section nameLPCTSTR lpKeyName,        // key nameLPCTSTR lpDefault,        // default stringLPTSTR lpReturnedString,  // destination bufferDWORD nSize,              // size of destination bufferLPCTSTR lpFileName        // initialization file name
);
  • 第一个参数为字段名,上例中的[连接参数];

  • 第二个参数键名,即变量名,上例中的IpServer、DataBase等等;

  • 第三个参数指,如果ini文件中没有前两个参数指定的字段名或键名,则将lpDefault的值赋给变量,也就是缺省值;

  • 第四个参数是接收ini文件中键名的值的CString对象,即目的缓存器;

  • 第五个参数是目的缓存器的大小;

  • 第六个参数是ini文件的完整路径。如下:

GetPrivateProfileString(L"连接参数",L"ipServer",L"127.0.0.1",
ipStr.GetBuffer(MAX_PATH),MAX_PATH,curPath);

在此额外说一点,一般来说ini文件和exe文件是放在一起的,所以这里涉及到当前路径的问题,可用另一个全局函数也可以实现,假如我们的文件是配置.ini,则如下:

CString curPath;//存储路径的CString对象
AfxGetModuleFileName(AfxGetInstanceHandle(),curPath);
curPath=curPath.Left(curPath.ReverseFind('\\'))+'\\';
curPath.AppendFormat(L"配置.ini");

或者还可以使lpFileName的值为:“.//配置.ini” 来定位到当前目录(这种方法笔者还未测试)。

此外,读取整型值便要用另一个函数:

UINT GetPrivateProfileInt(LPCTSTR lpAppName,  // section nameLPCTSTR lpKeyName,  // key nameINT nDefault,       // return value if key name not foundLPCTSTR lpFileName  // initialization file name
);

二、将配置信息保存到ini文件中

类似地,所用函数为:

BOOL WritePrivateProfileString(LPCTSTR lpAppName,  // section nameLPCTSTR lpKeyName,  // key nameLPCTSTR lpString,   // string to addLPCTSTR lpFileName  // initialization file
);

参数与读取的时候意义基本一致,而且比读取的时候更简单一点,在此不作赘述。
最后,需要注意的一点是,文件名的路径中反斜杠必须为\\才表示\,第一个为转义字符。

ini配置文件的读写相关推荐

  1. 【Y忍冬草】QT读写ini配置文件

    文章目录 1.ini文件格式 2. ini配置文件的读写.删除 3. 结果 4.源码下载  在我们进行软件系统开始时,对于一些参数我们需要进行配置,这时我们就会用ini类型的配置文件.其实我们在很多软 ...

  2. C#中读写INI配置文件

    转:http://www.pc123.org/html/net/CSharp/200812/17_7470.html 在作应用系统开发时,管理配置是必不可少的.例如数据库服务器的配置.安装和更新配置等 ...

  3. python读取配置文件 分段_Python3读写ini配置文件的示例

    ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...

  4. C# 读写ini配置文件demo

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若 ...

  5. C/C++ ini配置文件的格式及如何读写ini配置文件

    一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...

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

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

  7. 易语言写c盘配置文件,易语言 读写配置项(ini配置文件)源码

    简介 易语言 读写配置项(ini配置文件)源码 源码 .版本 2 .支持库 iext .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 账号, 文本型 .局部变量 密码, 文本型 ...

  8. C# 读写ini配置文件

     C# 读写ini配置文件 一.简述  记--c#通过调用系统api接口进行简单读写ini配置文件. 例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa 密码:8maq ...

  9. QT中如何读写ini配置文件

    本文首发于「3D视觉工坊」知识星球. 如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中, ...

最新文章

  1. 从源码分析DEARGUI之add_label_text
  2. 关于System.TypeInitializationException异常
  3. 面试官:为什么HTTPS是安全的
  4. 知识工程学:一个新的重要研究领域
  5. 17-比赛1 A - Weak in the Middle (栈)
  6. 在android中监听呼出电话(电话拦截、修改呼出电话)
  7. asp.net控件开发基础(19)
  8. P4239 任意模数多项式乘法逆(多项式/ MTT)
  9. JAVA递归实现全排列
  10. Error: Could not find or load main class
  11. 女大学生两块钱成功进外企
  12. 爬早-精典小结-0226
  13. Python《使用Selenium 和pyautogui 实现自动登录淘宝》
  14. find和chmod结合来修改权限
  15. 【SVM回归预测】基于matlab布谷鸟算法优化SVM回归预测【含Matlab源码 1422期】
  16. 高分辨率图像剪切——目标检测
  17. 自动驾驶对公路基础设施有何深刻影响?(上)| 自动驾驶系列
  18. 学习纹理格式(DXGI_FORMAT 和 VkFormat)
  19. 第一门慕课计划——在广东海洋大学推广MOOC学习
  20. android谷歌服务框架(GoogleServicesFramework)

热门文章

  1. 自定义Spring Data JPA存储库
  2. Linux 命令之 userdel -- 用于删除给定的用户以及与用户相关的文件
  3. Linux 命令之 less -- 分屏上下翻页浏览文件内容(查看文件内容/显示文件内容)
  4. 两个数相乘积一定比每个因数都大_人教版五年级数学:因数、倍数与分数的整理与复习...
  5. java相除保留两位小数_Java:Java快速入门
  6. mysql动态标签可以嵌套吗_Mysql动态嵌套游标
  7. php如何在类的外部修改成员属性,php中如何在外部修改类的私有或受保护属性值...
  8. python比较两张图片是否一样_opencv_判断两张图片是否相同
  9. 【开源项目】基于Directx屏幕录制
  10. map for循环_JavaScript 用 for 循环太 low?你是不是有什么误解