WritePrivateProfileString等读写.ini配置文件

本文详细介绍了在VC环境中如何使用WritePrivateProfileString和GetPrivateProfileString函数进行INI文件的读写操作,包括函数参数解释及实际代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:

https://blog.csdn.net/wuguai4/article/details/7287346

https://blog.csdn.net/sunjie5243/article/details/17991985

 

配置文件中经常用到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文件的路径
);

读取整形值:(返回值为读到的整)

UINT GetPrivateProfileInt(
  LPCTSTR lpAppName,  // INI文件中的一个字段名[节名]可以有很多个节名
  LPCTSTR lpKeyName,  // lpAppName 下的一个键名,也就是里面具体的变量名
  INT nDefault,       // 如果没有找到指定的数据返回,则把个变量值赋给返回值
  LPCTSTR lpFileName  // INI文件的路径
);


读写INI文件时相对路径和绝对路径都可以,根据实际情况选择

"..\\IniFileName.ini"    // 这样的为相对路径

"D:\\IniFileName.ini"    // 这样的为绝对路径

MAX_PATH:是微软最大路径占的字节所设的宏


例子:

写INI文件

LPTSTR lpPath = new char[MAX_PATH];
 
strcpy(lpPath, "D:\\IniFileName.ini");
 
WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);
WritePrivateProfileString("LiMing", "Age", "20", lpPath);
 
WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);
WritePrivateProfileString("Fangfang", "Age", "21", lpPath);

delete [] lpPath;
 
 
INI文件如下:
[LiMing]
Sex=Man
Age=20
[Fangfang]
Sex=Woman
Age=21
 
读INI文件:
LPTSTR lpPath = new char[MAX_PATH];
LPTSTR LiMingSex = new char[6];
int LiMingAge;
LPTSTR FangfangSex = new char[6];
int FangfangAge;
 
 
strcpy(lpPath, "..\\IniFileName.ini");
 
GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);
LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);
 
GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);
FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);
 
delete [] lpPath;
 

--------------------- --------------------- --------------------- --------------------- --------------------- 

WritePrivateProfileString(lpApplicationName, lpKeyName, lpString, lpFileName)
说明

在初始化文件指定小节内设置一个字串

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数

类型及说明

lpApplicationName

String,要在其中写入新字串的小节名称。这个字串不区分大小写

lpKeyName

Any,要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项

lpString

String,指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串

lpFileName

String,初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它

 

在调用时,最后一个参数谨记必须使用完整路径,不然就会发现我明明写进文件了,也可以读出来,可是为什么在INI文件中没有记录呢?

这个时候,你应该去windows目录下找找这个INI文件了。
--------------------- --------------------- --------------------- --------------------- --------------------- --------------------- 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值