问题
My ini file does not have any section. It has following data
com.ibm.rcp.toolbox.admin/toolboxvisibleChild=false com.ibm.collaboration.realtime.community/defaultAuthType=ST-DOMINO-SSO com.ibm.collaboration.realtime.brokerbridge/startBroker=false com.ibm.collaboration.realtime.webapi/startWebContainer=true
I want to use function.
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,string def, StringBuilder retVal,
int size,string filePath);
My problems
- I cannot give section name in the function because I dont have any
- If I give section name null, it returns nothing
- I don't want to use brute force like ReadAllText
回答1:
Here's a library that the author says supports section-less keys. I myself have not tried this library.
Or, you could simply edit the Ini file and add in a "header"/section name right at the top, then delete it once you're done reading.
回答2:
Using File.ReadLines and some LINQ is actually not that bad:
var dict = File.ReadLines("config.txt")
.Where(line => !string.IsNullOrWhiteSpace(line))
.Select(line => line.Split(new char[] { '=' }, 2, 0))
.ToDictionary(parts => parts[0], parts => parts[1]);
var result = dict["com.ibm.rcp.toolbox.admin/toolboxvisibleChild"];
来源:https://stackoverflow.com/questions/9686281/read-ini-file-which-does-not-have-any-section