GetPrivateProfileString() 当 key 包含空格时,需要进行转义

使用 GetPrivateProfileString() 方法可以方便的读取 ini 格式文件中的内容,如:

[section]
tommy = worker

使用 C# 读取如下:

1. 先引入 GetPrivateProfileString() 方法

[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);

2. 调用

string keyName = "tommy";
string filePath = @"D:\tommy.ini";
StringBuilder sb = new StringBuilder(255);
GetPrivateProfileString(section, keyName, "", sb, 261, filePath);

 

但是当 key 包含空格时,ini 文件就应该如下:

[section]
"tommy huang" = worker

此时的 C# 需要对 key 进行转义:

string keyName = "tommy huang";
keyName = "\"" + keyName + "\"";//进行转义
string filePath = @"D:\tommy.ini";
StringBuilder sb = new StringBuilder(255);
GetPrivateProfileString(section, keyName, "", sb, 261, filePath);

总结:
如果通过 GetPrivateProfileString() 方法读取 ini 格式文件时,如果 key 包含空格,先进行转义 "\"" + key + "\"";

posted @ 2019-12-22 16:49  一菲聪天  阅读(...)  评论(...编辑  收藏