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

我需要一种方法来读取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('\0').Split('\0');

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

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

    return result;
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...