В общем-то, на дворе 21 век, и все уже перешли на xml и ini силами так же самого Microsoft’а отмирает. Может и так, но я думаю, что для небольших настроек лучше ini, xml это из “пушки по воробьям”. В C# встроенное поддержке ini не предусмотрено, но нам ничего не мешает воспользоваться WinAPI. Ниже приведен класс для работы с ini использующий WinAPI.
using System.Text; using System.Runtime.InteropServices; public class IniFile { public string path; [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); public IniFile(string INIPath) { path = INIPath; } public void IniWriteValue(string Section, string Key, string Value) { WritePrivateProfileString(Section, Key, Value, this.path); } public string IniReadValue(string Section, string Key) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path); return temp.ToString(); } }
Так как это WinAPI, то это не будет работать на других системах Linux (Mono/Wine), iOs или Android (если вы слышали про Xamarin то знаете что писать аппы можно уже даже для них)
Нашел полноценный вариант. Он собсно настоящий парсер ini-файлов: http://agehack.pro/proini.html
окей, думаю будет полезно. Для тех же iOS/Android чаще XML используют, вроде бы.
ну xml для храниния параметров очень даже ничего)
$xmldata=(Get-Content ‘C:\App32\ColorPic 4.1\palettes.xml’)
$xmldata.SelectNodes(“/Palettes/Palette/Color/@COLOR”)
Спасибо за написанный вами класс.
Пожалуйста, подскажите, как средствами C# считать из заданной секции массив строк (без ключей) и как записать этот массив.