Читайте INI-файл, который не имеет никакого раздела? - PullRequest
3 голосов
/ 13 марта 2012

В моем ini-файле нет ни одного раздела. Имеет следующие данные

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

Я хочу использовать функцию.

    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
             string key,string def, StringBuilder retVal,
        int size,string filePath);

Мои проблемы

  1. Я не могу дать название секции в функции, потому что у меня нет
  2. Если я даю имя раздела null, оно ничего не возвращает
  3. Я не хочу использовать грубую силу, такую ​​как ReadAllText

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Использование File.ReadLines и некоторых LINQ на самом деле не так уж и плохо:

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"];
2 голосов
/ 13 марта 2012

Вот библиотека, которая, по словам автора, поддерживает ключи без разделов.Я сам не пробовал эту библиотеку.
Или, вы можете просто отредактировать файл Ini и добавить имя "заголовка" / раздела прямо вверху, а затем удалить его, как только закончите чтение.

...