加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用GetPrivateProfileString读取所有ini文件值

发布时间:2020-12-15 03:58:06 所属栏目:百科 来源:网络整理
导读:我需要一种方法来读取StringBuilder变量中的ini文件的所有部分/键: [DllImport("kernel32.dll")]private static extern int GetPrivateProfileString(string lpAppName,string lpKeyName,string lpDefault,StringBuilder lpReturnedString,int nSize,string
我需要一种方法来读取StringBuilder变量中的ini文件的所有部分/键:
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString(string lpAppName,string lpKeyName,string lpDefault,StringBuilder lpReturnedString,int nSize,string lpFileName);

...

private List<string> GetKeys(string iniFile,string category)
{
    StringBuilder returnString = new StringBuilder(255);            

    GetPrivateProfileString(category,null,returnString,32768,iniFile);

    ...
}

在returnString中只是第一个关键值!如何可以立即获取所有内容并将其写入StringBuilder和List?

感谢您的帮助!

迎接leon22

解决方法

可能解决方案
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileSection(string lpAppName,byte[] lpszReturnBuffer,string lpFileName);

private List<string> GetKeys(string iniFile,string category)
{

    byte[] buffer = new byte[2048];

    GetPrivateProfileSection(category,buffer,2048,iniFile);
    String[] tmp = Encoding.ASCII.GetString(buffer).Trim('').Split('');

    List<string> result = new List<string>();

    foreach (String entry in tmp)
    {
        result.Add(entry.Substring(0,entry.IndexOf("=")));
    }

    return result;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读