public static void UpdateField(string field, string text) { //adapted from //http://stackoverflow.com/a/2401873 string tempfile = Path.GetTempFileName(); LogB.Information("UpdateField, field: " + field + ", text: " + text); if (!File.Exists(UtilAll.GetConfigFileName())) { try { using (var writer = new StreamWriter(tempfile)) { writer.WriteLine(field + "=" + text); } File.Copy(tempfile, UtilAll.GetConfigFileName(), true); } catch { LogB.Warning("Cannot write at Config.UpdateField"); } } else { try { using (var writer = new StreamWriter(tempfile)) using (var reader = new StreamReader(UtilAll.GetConfigFileName())) { while (!reader.EndOfStream) { string line = reader.ReadLine(); if (line != "" && line[0] != '#') { string [] parts = line.Split(new char[] { '=' }); if (parts.Length == 2 && parts[0] == field) { line = field + "=" + text; } } writer.WriteLine(line); } } File.Copy(tempfile, UtilAll.GetConfigFileName(), true); } catch { LogB.Warning("Cannot write at Config.UpdateField"); } } }
void on_button_import_configuration_clicked(object o, EventArgs args) { fc = new Gtk.FileChooserDialog(Catalog.GetString("Import configuration file"), preferences_win, FileChooserAction.Open, Catalog.GetString("Cancel"), ResponseType.Cancel, Catalog.GetString("Import"), ResponseType.Accept ); fc.Filter = new FileFilter(); //it can handle future archives like: chronojump_config_SOME_VENDOR.txt //and it will be copied to chronojump_config.txt fc.Filter.AddPattern("chronojump_config*.txt"); bool success = false; if (fc.Run() == (int)ResponseType.Accept) { try { File.Copy(fc.Filename, UtilAll.GetConfigFileName(), true); LogB.Information("Imported configuration"); //will launch configInit() from gui/chronojump.cs FakeButtonImported.Click(); success = true; } catch { LogB.Warning("Catched! Configuration cannot be imported"); new DialogMessage(Constants.MessageTypes.WARNING, Catalog.GetString("Error importing data.")); } } //Don't forget to call Destroy() or the FileChooserDialog window won't get closed. fc.Destroy(); if (success) { new DialogMessage(Constants.MessageTypes.INFO, Catalog.GetString("Successfully imported.")); } }
public void Read() { string contents = Util.ReadFile(UtilAll.GetConfigFileName(), false); if (contents != null && contents != "") { string line; using (StringReader reader = new StringReader(contents)) { do { line = reader.ReadLine(); if (line == null) { break; } if (line == "" || line[0] == '#') { continue; } string [] parts = line.Split(new char[] { '=' }); if (parts.Length != 2) { continue; } if (parts[0] == "Maximized" && Util.StringToBool(parts[1])) { Maximized = true; } else if (parts[0] == "CustomButtons" && Util.StringToBool(parts[1])) { CustomButtons = true; } else if (parts[0] == "UseVideo" && !Util.StringToBool(parts[1])) { UseVideo = false; } else if (parts[0] == "AutodetectPort" && Enum.IsDefined(typeof(AutodetectPortEnum), parts[1])) { AutodetectPort = (AutodetectPortEnum) Enum.Parse(typeof(AutodetectPortEnum), parts[1]); } else if (parts[0] == "OnlyEncoderGravitatory" && Util.StringToBool(parts[1])) { OnlyEncoderGravitatory = true; } else if (parts[0] == "OnlyEncoderInertial" && Util.StringToBool(parts[1])) { OnlyEncoderInertial = true; } else if (parts[0] == "EncoderCaptureShowOnlyBars" && Util.StringToBool(parts[1])) { EncoderCaptureShowOnlyBars = true; } else if (parts[0] == "EncoderUpdateTreeViewWhileCapturing" && !Util.StringToBool(parts[1])) { EncoderUpdateTreeViewWhileCapturing = false; } else if (parts[0] == "PersonWinHide" && Util.StringToBool(parts[1])) { PersonWinHide = true; } else if (parts[0] == "EncoderAnalyzeHide" && Util.StringToBool(parts[1])) { EncoderAnalyzeHide = true; } else if (parts[0] == "SessionMode" && Enum.IsDefined(typeof(SessionModeEnum), parts[1])) { SessionMode = (SessionModeEnum) Enum.Parse(typeof(SessionModeEnum), parts[1]); } else if (parts[0] == "RunScriptOnExit" && parts[1] != "") { RunScriptOnExit = parts[1]; } } while(true); } } }
public void Read() { string contents = Util.ReadFile(UtilAll.GetConfigFileName(), false); if (contents != null && contents != "") { string line; using (StringReader reader = new StringReader(contents)) { do { line = reader.ReadLine(); if (line == null) { break; } if (line == "" || line[0] == '#') { continue; } string [] parts = line.Split(new char[] { '=' }); if (parts.Length != 2) { continue; } if (parts[0] == "Compujump" && Util.StringToBool(parts[1])) { Compujump = true; } else if (parts[0] == "CompujumpServerURL" && parts[1] != "") { CompujumpServerURL = parts[1]; } else if (parts[0] == "CompujumpStationID" && parts[1] != "" && Util.IsNumber(parts[1], false)) { CompujumpStationID = Convert.ToInt32(parts[1]); } else if (parts[0] == "CompujumpAdminID" && parts[1] != "" && Util.IsNumber(parts[1], false)) { CompujumpAdminID = Convert.ToInt32(parts[1]); } else if (parts[0] == "CompujumpAdminEmail" && parts[1] != "") { CompujumpAdminEmail = parts[1]; } else if (parts[0] == "CompujumpStationMode" && Enum.IsDefined(typeof(Constants.Menuitem_modes), parts[1])) { CompujumpStationMode = (Constants.Menuitem_modes) Enum.Parse(typeof(Constants.Menuitem_modes), parts[1]); } else if (parts[0] == "SessionMode" && Enum.IsDefined(typeof(SessionModeEnum), parts[1])) { SessionMode = (SessionModeEnum) Enum.Parse(typeof(SessionModeEnum), parts[1]); } else if (parts[0] == "PlaySoundsFromFile" && Util.StringToBool(parts[1])) { PlaySoundsFromFile = true; } else if (parts[0] == "Exhibition" && Util.StringToBool(parts[1])) { Exhibition = true; } else if (parts[0] == "ExhibitionStationType" && Enum.IsDefined(typeof(ExhibitionTest.testTypes), parts[1])) { ExhibitionStationType = (ExhibitionTest.testTypes) Enum.Parse(typeof(ExhibitionTest.testTypes), parts[1]); } /* * else if(parts[0] == "ExhibitionServerURL" && parts[1] != "") * ExhibitionServerURL = parts[1]; * else if(parts[0] == "ExhibitionStationID" && parts[1] != "" && Util.IsNumber(parts[1], false)) * ExhibitionStationID = Convert.ToInt32(parts[1]); */ } while(true); } } }