Diese Klasse/Funktion kann eine einfach INI-Datei auslesen.
Damit ist es möglich, ganze Konfigurationen an die Nutzer zu verteilen.
PS: Ich nutze das Dateiformat für Update-Definitionen.
Bei mir heißen die Werte dann:
Build=(int) - Der Build des Updates
DownloadSource=http://.../update_package.dat
Signature=....
Hash=...
internal static class INIReader
{
/*
* File-Format:
* _______________________
*
* #Comment
* [Section]
* Value1=My Content
* Author=Thomas Roskop, 2016
*
*/
const string LINE_SEPARATOR = "\r\n";
const string KEY_VALUE_SEPARATOR = "=";
public static Dictionary<string, string> _Read(string config)
{
Dictionary<string, string> _s = new Dictionary<string, string>();
string[] lines = config.Split(new string[] { LINE_SEPARATOR }, StringSplitOptions.RemoveEmptyEntries);
foreach (var l in lines)
{
string t = l.Trim();
if (t[0] == '#')
{
// Es wurde ein Kommentar gefunden ('#' als erstes Zeichen der Zeile).
// Dieser wird beim lesen ignoriert.
}
else
{
string[] kv = t.Split(new string[] { KEY_VALUE_SEPARATOR }, StringSplitOptions.None);
// Wenn es mehr oder weniger als 2 Einträge in dieser Zeile sind, dann ist der Eintrag ungültig formatiert worden
// order es handelt sich um eine Sektion, e.g. "[Section-Name]"
if (kv.Length == 2)
{
_s.Add(kv[0].Trim(), kv[1].Trim());
}
}
}
return _s;
}
}
3 Kommentare zum Snippet