INI files
Energy.Base.Ini provides simple INI file parsing. The main type is Energy.Base.Ini.IniFile, a dictionary whose keys are section names and whose values are Energy.Base.Collection.StringDictionary objects containing key/value pairs.
Features
Configurable section brackets (
[]by default).Configurable key/value separators (
=by default).Configurable comment characters (
;by default).Case-sensitive or case-insensitive key lookup.
Optional empty section name.
Whitespace trimming.
Reading and writing whole files.
Example
string content = @"
; Database settings
[Database]
Server=localhost
Port=3306
Database=test
[Logging]
Level=Debug
File=log.txt
";
Energy.Base.Ini.IniFile ini = new Energy.Base.Ini.IniFile();
ini.Parse(content);
Console.WriteLine("Server: {0}", ini["Database"]["Server"]);
Console.WriteLine("Port: {0}", ini["Database"]["Port"]);
// change a value
ini["Database"]["Port"] = "3307";
string output = ini.ToString();
Console.WriteLine(output);
Loading and saving
Energy.Base.Ini.IniFile ini = new Energy.Base.Ini.IniFile();
ini.Load("settings.ini");
ini.Load("settings.ini", System.Text.Encoding.UTF8);
ini["Application"]["Name"] = "MyApp";
System.IO.File.WriteAllText("settings.ini", ini.ToString());
Configuration
| Property | Default | Description |
|---|---|---|
CaseSensitive |
true |
Key comparison is case-sensitive. |
AllowEmptySection |
true |
Allow entries before the first section. |
IgnoreWhiteSpace |
true |
Trim leading and trailing whitespace. |
CommentCharacters |
{ ";" } |
Lines starting with these are ignored. |
KeyValueSeparators |
{ "=" } |
Strings that separate key and value. |
SectionBrackets |
{ "[]" } |
Strings that enclose section names. |