搜索
热搜: 成语

[转]C++对ini文件的读写操作

[复制链接]
发表于 2020-5-4 16:29:11 | 显示全部楼层 |阅读模式
本帖最后由 娃娃鱼 于 2020-5-4 16:36 编辑

C++对ini文件的读写操作


【本文转自互联网,版权属原作者所有,原文地址:https://blog.csdn.net/u013288800/article/details/82625892



配置文件中经常用到ini文件,在VC中其函数分别为:

写入.ini文件:
BOOL WritePrivateProfileString(
  LPCTSTR lpAppName,  // INI文件中的一个字段名[节名]可以有很多个节名

  LPCTSTR lpKeyName,  // lpAppName 下的一个键名,也就是里面具体的变量名

  LPCTSTR lpString,   // 键值,也就是数据

  LPCTSTR lpFileName  // INI文件的路径
);

读取.ini文件:
DWORD GetPrivateProfileString(
  LPCTSTR lpAppName,        // INI文件中的一个字段名[节名]可以有很多个节名
  LPCTSTR lpKeyName,        // lpAppName 下的一个键名,也就是里面具体的变量名
  LPCTSTR lpDefault,        // 如果lpReturnedString为空,则把个变量赋给lpReturnedString
  LPTSTR lpReturnedString,  // 存放键值的指针变量,用于接收INI文件中键值(数据)的接收缓冲区
  DWORD nSize,            // lpReturnedString的缓冲区大小
  LPCTSTR lpFileName        // INI文件的路径
);

读取整形值:(返回值为读到的整)
  1. UINT GetPrivateProfileInt(
  2.   LPCTSTR lpAppName,  // INI文件中的一个字段名[节名]可以有很多个节名
  3.   LPCTSTR lpKeyName,  // lpAppName 下的一个键名,也就是里面具体的变量名
  4.   INT nDefault,       // 如果没有找到指定的数据返回,则把个变量值赋给返回值
  5.   LPCTSTR lpFileName  // INI文件的路径
  6. );
复制代码
读写INI文件时相对路径和绝对路径都可以,根据实际情况选择
  1. "..//IniFileName.ini"    // 这样的为相对路径
  2. "D://IniFileName.ini"    // 这样的为绝对路径
复制代码
MAX_PATH:是微软最大路径占的字节所设的宏
例子:
写INI文件:
  1. LPTSTR lpPath = new char[MAX_PATH];
  2. strcpy(lpPath, "D://IniFileName.ini");
  3. WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);
  4. WritePrivateProfileString("LiMing", "Age", "20", lpPath);
  5. WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);
  6. WritePrivateProfileString("Fangfang", "Age", "21", lpPath);
  7. delete [] lpPath;
复制代码
INI文件如下:
  1. [LiMing]
  2. Sex=Man
  3. Age=20
  4. [Fangfang]
  5. Sex=Woman
  6. Age=21
复制代码
读INI文件:
  1. LPTSTR lpPath = new char[MAX_PATH];
  2. LPTSTR LiMingSex = new char[6];
  3. int LiMingAge;
  4. LPTSTR FangfangSex = new char[6];
  5. int FangfangAge;
  6. strcpy(lpPath, "..//IniFileName.ini");
  7. GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);
  8. LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);
  9. GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);
  10. FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);
  11. delete [] lpPath;
复制代码





高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|手机版|简聊驿站 ( 湘ICP备20006119-1号 )

© 2012-2023 简聊驿站 Powered by Discuz! 7.2 Comsenz Inc. GMT+8, 2025-4-20 05:00

Smrz 湘ICP备20006119-1号

公安备案

湘公网安备 43051102000012号

快速回复 返回顶部 返回列表