private void WriteLauncher(string launcherFile) { IniDocument iniDocument = new IniDocument("iniDocument", "", ""); iniDocument.Add(this._buttons.Launch.Write2File(), true); iniDocument.Add(this._buttons.Activate.Write2File(), true); iniDocument.Add(this._buttons.LiveMode.Write2File(), true); iniDocument.Add(this._buttons.Environment.Write2File(), true); iniDocument.Add(this._buttons.RegistryKeys.Write2File(), true); iniDocument.Add(this._buttons.RegistryValueWrite.Write2File(), true); iniDocument.Add(this._buttons.RegistryCleanup.Write2File(), true); iniDocument.Add(this._buttons.FileWriteN.Write2File(), true); iniDocument.Add(this._buttons.FilesMove.Write2File(), true); iniDocument.Add(this._buttons.DirectoriesMove.Write2File(), true); iniDocument.Add(this._buttons.DirectoriesCleanup.Write2File(), true); iniDocument.Add(this._buttons.Language.Write2File(), true); iniDocument.Add(this._buttons.LanguageStrings.Write2File(), true); iniDocument.Add(this._buttons.LanguageFile.Write2File(), true); iniDocument.Add(this._buttons.Custom.Write2File(), true); iniDocument.Remove(Descendants.Empty); foreach (Section section in iniDocument.get_Sections()) { section.Remove(Descendants.Empty); } iniDocument.Footer = "Generated with PAF Launcher Editor 5"; iniDocument.SpaceOutSections = true; File.WriteAllLines(launcherFile, iniDocument.Lines(), Encoding.Default); }
static void Main() { const int maxIters = 10000; var watch = new Stopwatch(); // Time how long it takes to process the INI, and estimate how much // memory the data structure takes. var startMem = GC.GetTotalMemory(false); watch.Start(); var ini = new IniDocument("test.ini"); watch.Stop(); var endMem = GC.GetTotalMemory(false); Console.WriteLine("Approx. Data Structure Mem: {0}", endMem - startMem); Console.WriteLine("{0} ms to process INI.", watch.ElapsedMilliseconds); watch.Reset(); // Time how long it takes to make many simple changes. watch.Start(); for(var i = 0; i < maxIters; ++i) { ini["User"]["Name"].Value = "md5sum"; ini["User"]["Password Hash"].Value = "e65b0dce58cbecf21e7c9ff7318f3b57"; ini["User"]["Remove This"].Value = "This shouldn'd stay."; ini["User"].Remove("Remove This"); ini["Remove This Too"].Comment = "This better not stay!"; ini.Remove("Remove This Too"); ini["User"].Comment = "These are the basic user settings.\nDon't modify them unless you know what you're doing."; } watch.Stop(); Console.WriteLine("{0} ms to make changes.", watch.ElapsedMilliseconds); watch.Reset(); // Time how long it takes to deserialize. var serializer = IniSerializer<Model2>.New(); watch.Start(); var model = serializer.Deserialize(ini); for(var i = 0; i < maxIters - 1; ++i) model = serializer.Deserialize(ini); model.Model.LastRun = DateTime.Now; watch.Stop(); Console.WriteLine("{0} ms to deserialize.", watch.ElapsedMilliseconds); watch.Reset(); // Time how long it takes to serialize. watch.Start(); for(var i = 0; i < maxIters; ++i) serializer.Serialize(model, ini); watch.Stop(); Console.WriteLine("{0} ms to serialize.", watch.ElapsedMilliseconds); watch.Reset(); // Time how long it takes to write the changes back to another file. watch.Start(); ini.Write("test2.ini"); watch.Stop(); Console.WriteLine("{0} ms write INI document to file.", watch.ElapsedMilliseconds); }