public Configuration() { iniFilePath = resolveFilePath(CONFIG_FILE_NAME); loadLocal(); loadGlobal(); merged = new IniData(); merged.Merge(global); merged.Merge(local); string matchingMode = Get("Dialogue", "SubsetMatchingMode", Enum.GetName(typeof(SubsetMatchingMode), DEFAULT_GRAMMAR_MATCHING_MODE)); try { if (matchingMode.ToLower() == "none") { enableDialogueSubsetMatching = false; Trace.TraceInformation("Dialogue SubsetMatchingMode Disabled"); } else { configuredMatchingMode = (SubsetMatchingMode)Enum.Parse(typeof(SubsetMatchingMode), matchingMode, true); Trace.TraceInformation("Set Dialogue SubsetMatchingMode to {0}", configuredMatchingMode); } } catch (Exception ex) { Trace.TraceError("Failed to parse SubsetMatchingMode from ini file, falling back to default"); Trace.TraceError(ex.ToString()); configuredMatchingMode = DEFAULT_GRAMMAR_MATCHING_MODE; } goodbyePhrases = getPhrases("Dialogue", "goodbyePhrases"); pausePhrases = getPhrases("SpeechRecognition", "pausePhrases"); resumePhrases = getPhrases("SpeechRecognition", "resumePhrases"); string nmlExpStr = Get("SpeechRecognition", "normalizeExpression", DEFAULT_NORMALIZE_EXPRESSION); if (nmlExpStr.Length > 0) { normalizeExpression = new Regex(nmlExpStr); normalizeReplacement = Get("SpeechRecognition", "normalizeReplacement", DEFAULT_NORMALIZE_REPLACEMENT); } string opExpStr = Get("SpeechRecognition", "optionalExpression", DEFAULT_OPTIONAL_EXPRESSION); if (opExpStr.Length > 0) { optionalExpression = new Regex(opExpStr); optionalReplacement = Get("SpeechRecognition", "optionalReplacement", DEFAULT_OPTIONAL_REPLACEMENT); } string localeStr = Get("SpeechRecognition", "Locale", ""); if (localeStr.Length > 0) { locale = new CultureInfo(localeStr); } consoleCommandList = CommandList.FromIniSection(merged, "ConsoleCommands", this); consoleCommandList.PrintToTrace(); }
public Configuration() { iniFilePath = resolveFilePath(CONFIG_FILE_NAME); loadLocal(); loadGlobal(); merged = new IniData(); merged.Merge(global); merged.Merge(local); }
private static IniData getData() { if (merged == null) { loadLocal(); loadGlobal(); merged = new IniData(); merged.Merge(global); merged.Merge(local); } return(merged); }
/// <summary> /// Loads the games from a gamedb.ini file and internal settings. /// It will search for the files in bnetlauncher folder or it's appdata. /// </summary> private static void LoadGameList() { // Name of external gamedb file string[] gamedb_files = { Path.Combine(Application.StartupPath, "gamedb.ini"), Path.Combine(Application.StartupPath, "gamesdb.ini"), Path.Combine(Program.DataPath, "gamedb.ini"), Path.Combine(Program.DataPath, "gamesdb.ini") }; Logger.Information("Loading gamedb files."); var gamedb = new IniData(); foreach (var file in gamedb_files) { // Checks if there's a gamedb.ini and loads it if in the datapath and copies it over if there isn't one if (File.Exists(file)) { var ini_filedata = (new FileIniDataParser()).ReadFile(file); gamedb.Merge(ini_filedata); Logger.Information($"Loaded '{file}' with '{ini_filedata.Sections.Count}' games."); } } // Loads internal gamedb overiding the file loaded var ini_parser = new IniParser.Parser.IniDataParser(); var ini_data = ini_parser.Parse(Properties.Resources.gamesdb); gamedb.Merge(ini_data); Logger.Information($"Loaded internal gamedb with '{ini_data.Sections.Count}' games."); // Load the gamedb into the games list foreach (var section in gamedb.Sections) { //TODO: Error checking? games.Add(new Game { Id = section.SectionName, Name = section.Keys["name"], Client = section.Keys["client"], Cmd = section.Keys["cmd"], Exe = section.Keys["exe"], Options = section.Keys["options"] }); } Logger.Information($"Known games: '{games.Count}'."); }
public void Load(string path, bool clean) { SARAH.GetInstance().Log("ConfigManager", "Loading: " + path); var parser = new FileIniDataParser(); var conf = parser.ReadFile(path); //SARAH.GetInstance().Log("ConfigManager", conf.ToString()); if (clean) { foreach (var section in conf.Sections) { section.LeadingComments.Clear(); section.TrailingComments.Clear(); foreach (var keydata in section.Keys) { keydata.Comments.Clear(); } } } if (Config == null) { Config = conf; } else { Config.Merge(conf); } }
/// <summary> /// Saves the settings to an ini file. /// </summary> public void Save() { try { var data = new IniData { Configuration = IniParserConfig }; foreach (var setting in Children.OfType <Settings>()) { data.Merge(setting.GetIniData()); } using (var stream = File.Create($"{Name}.ini")) using (var writer = new StreamWriter(stream)) { var ini = new IniParser.StreamIniDataParser(); ini.WriteData(writer, data); } } catch (Exception e) { Engine.Logger.Error(e); throw new InvalidOperationException($"Could not save ini for ${Name}. (${ClassName}): {e.Message}", e); } }
public void Save(string db_path, IniData db_mem) { var parser = new FileIniDataParser(); if (File.Exists(db_path)) { IniData data; try { data = parser.ReadFile(db_path); } catch (Exception ex) { System.Console.WriteLine( $">>{ex.Message}\r\n" + $"{ex.ToString()}"); data = new IniData(); } data.Merge(db_mem); parser.WriteFile(db_path, data); } else { string directory = Path.GetDirectoryName(db_path); if (directory != "" && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } IniData data = new IniData(); parser.WriteFile(db_path, db_mem); } }
public static void SaveSettings(IniData data) { IniData main = Parser.ReadFile(App.SETTINGS_PATH); main.Merge(data); Parser.WriteFile(App.SETTINGS_PATH, main); }
//private static Check activeCheck; static void Main(string[] args) { var mainConfig = new IniData(); String currDir = Directory.GetCurrentDirectory() + "\\"; String configFile = currDir + "config.ini"; mainConfig["paths"]["src"] = currDir + "src\\"; mainConfig["paths"]["queue"] = currDir + "queue\\"; mainConfig["paths"]["results"] = currDir + "results\\"; mainConfig["paths"]["scripts"] = @"C:\Users\iumag\Desktop\scripts\"; // init config var parser = new FileIniDataParser(); if (!File.Exists(configFile)) { // write default setting parser.WriteFile(configFile, mainConfig); } IniData fileConfig = parser.ReadFile(configFile); mainConfig.Merge(fileConfig); globalConfig = mainConfig; // create folders if not exists if (!Directory.Exists(globalConfig["paths"]["src"])) { Directory.CreateDirectory(globalConfig["paths"]["src"]); } if (!Directory.Exists(globalConfig["paths"]["queue"])) { Directory.CreateDirectory(globalConfig["paths"]["queue"]); } if (!Directory.Exists(globalConfig["paths"]["results"])) { Directory.CreateDirectory(globalConfig["paths"]["results"]); } if (!Directory.Exists(globalConfig["paths"]["scripts"])) { Directory.CreateDirectory(globalConfig["paths"]["scripts"]); } // check exist files foreach (String file in Directory.GetFiles(globalConfig["paths"]["queue"], "*.new")) { runCheck(file); } // run folder listiner listenFolder(); // wait - not to end new System.Threading.AutoResetEvent(false).WaitOne(); }
private static void save() { var parser = new FileIniDataParser(); IniData dataTmp = (IniData)defaultData.Clone(); dataTmp.Merge(data); parser.WriteFile("config.ini", data); }
private static IniData ReadData(IEnumerable <Stream> streams) { IniData result = new IniData(); foreach (var stream in streams) { var data = INIHelper.ReadINI(stream); result.Merge(data); } return(result); }
private static IniData ReadData(IEnumerable <FileInfo> files) { IniData result = new IniData(); foreach (var file in files) { var data = INIHelper.ReadINI(file); result.Merge(data); } return(result); }
private static IniData ReadData(IEnumerable <string> contents) { IniData result = new IniData(); foreach (var content in contents) { var data = INIHelper.ReadINI(content); result.Merge(data); } return(result); }
private TreeNode AddTreeNode(IProepertyEntity obj) { var node = new TreeNode(obj.SectionName); node.Tag = obj; configItems.Nodes.Add(node); clientConfigData.Merge(obj.ToIniData()); parser.WriteFile(configFile_client, clientConfigData, Encoding.Default); return(node); }
public Configuration() { iniFilePath = resolveFilePath(CONFIG_FILE_NAME); loadLocal(); loadGlobal(); merged = new IniData(); merged.Merge(global); merged.Merge(local); string matchingMode = Get("Dialogue", "SubsetMatchingMode", Enum.GetName(typeof(SubsetMatchingMode), DEFAULT_GRAMMAR_MATCHING_MODE)); try { if (matchingMode.ToLower() == "none") { enableDialogueSubsetMatching = false; Trace.TraceInformation("Dialogue SubsetMatchingMode Disabled"); } else { configuredMatchingMode = (SubsetMatchingMode)Enum.Parse(typeof(SubsetMatchingMode), matchingMode, true); Trace.TraceInformation("Set Dialogue SubsetMatchingMode to {0}", configuredMatchingMode); } } catch (Exception ex) { Trace.TraceError("Failed to parse SubsetMatchingMode from ini file, falling back to default"); Trace.TraceError(ex.ToString()); configuredMatchingMode = DEFAULT_GRAMMAR_MATCHING_MODE; } goodbyePhrases = getPhrases("Dialogue", "goodbyePhrases"); pausePhrases = getPhrases("SpeechRecognition", "pausePhrases"); resumePhrases = getPhrases("SpeechRecognition", "resumePhrases"); consoleCommandList = CommandList.FromIniSection(merged, "ConsoleCommands"); consoleCommandList.PrintToTrace(); }
public ConfigData(string customConfigs) { var parser = new IniDataParser(); _iniData = parser.Parse(DefaultConfigs); if (!string.IsNullOrEmpty(customConfigs)) { if (customConfigs.Trim() != "") { var userIniData = parser.Parse(customConfigs); _iniData.Merge(userIniData); } } }
public async Task <bool> PutValue(string section, string valueName, object value) { try { await Task.Factory.StartNew(() => { var tmpIniData = new IniData(); tmpIniData[section][valueName] = value != null ? value.ToString() : string.Empty; dataSnapshot.Merge(tmpIniData); }); } catch (Exception e) { Debug.WriteLine(e.Message); return(false); } return(true); }
protected override IniData GetIniData() { IniData mergedIniData = null; foreach (var filename in filePaths) { var iniData = fileIniDataParser.ReadFile(filename, Encoding.UTF8); if (mergedIniData == null) { mergedIniData = iniData; } else { mergedIniData.Merge(iniData); } } return(mergedIniData); }
public static IniData ReadFile(params string[] files) { var fidp = new FileIniDataParser(); var data = new IniData(); foreach (var file in files) { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file); if (!File.Exists(path)) { continue; } var tmp = fidp.ReadFile(path); data.Merge(tmp); } return(data); }
public static bool LoadSettings() { try { IniData userConfig; var parser = new FileIniDataParser(); userConfig = parser.ReadFile(ConfigPath); Defaults = parser.ReadFile(ConfigDefaultsPath); Defaults.Merge(userConfig); Config = Defaults; } catch (Exception ex) { Debug.Log(ex.Message); return(false); } return(true); }
public static IniData ParseFiles(string defaultConfig, string globalConfigFilename) { var utf8 = new UTF8Encoding(false); var parserConfig = CreateIniParserConfiguration(); var parser = new IniDataParser(parserConfig); IniData result = parser.Parse(DefaultLfMergeSettings.DefaultIniText); string globalIni = File.Exists(globalConfigFilename) ? File.ReadAllText(globalConfigFilename, utf8) : ""; if (String.IsNullOrEmpty(globalIni)) { // Can't use the log yet, so report warnings to Console.WriteLine Console.WriteLine("LfMerge: Warning: no global configuration found. Will use default settings."); } IniData globalConfig; try { globalConfig = parser.Parse(globalIni); } catch (ParsingException e) { Console.WriteLine("LfMerge: Warning: Error parsing global configuration file. Will use default settings."); Console.WriteLine("Error follows: {0}", e.ToString()); globalConfig = null; // Merging null is perfectly acceptable to IniParser } result.Merge(globalConfig); foreach (KeyData item in result.Global) { // Special-case. Could be replaced with a more general regex if we end up using more variables, but YAGNI. if (item.Value.Contains("${HOME}")) { item.Value = item.Value.Replace("${HOME}", Environment.GetEnvironmentVariable("HOME")); } } return(result); }
private void loadModConfig(string dir) { if (!System.IO.Directory.Exists(dir)) { return; } var files = System.IO.Directory.GetFiles(dir, "*.txt"); for (int i = 0; i < files.Length; i++) { var cfg = new IniParser.FileIniDataParser().ReadFile(files[i]); if (modConfigs == null) { modConfigs = cfg; } else { modConfigs.Merge(cfg); } } Debug.Log("load mod config : " + dir + " " + modConfigs.Sections.Count); }
public void merge_parsed_ini_files() { var parser = new IniDataParser(); IniData dataA = parser.Parse(iniFileStrA); IniData dataB = parser.Parse(iniFileStrB); dataA.Merge(dataB); { // merged files Assert.That(dataA.Global["g"], Is.EqualTo("11")); Assert.That(dataA.Global["j"], Is.EqualTo("a")); Assert.That(dataA.Sections.Count, Is.EqualTo(3), "Expected two (3) sections"); var s0 = dataA.Sections.GetSectionData("s0"); Assert.That(s0, Is.Not.Null); Assert.That(s0.SectionName, Is.EqualTo("s0")); Assert.That(s0.Keys["a"], Is.EqualTo("22")); Assert.That(s0.Keys["b"], Is.EqualTo("44")); var s1 = dataA.Sections.GetSectionData("s1"); Assert.That(s1, Is.Not.Null); Assert.That(s1.SectionName, Is.EqualTo("s1")); Assert.That(s1.Keys["a"], Is.EqualTo("3")); Assert.That(s1.Keys["b"], Is.EqualTo("4")); var s2 = dataA.Sections.GetSectionData("s2"); Assert.That(s2, Is.Not.Null); Assert.That(s2.SectionName, Is.EqualTo("s2")); Assert.That(s2.Keys["c"], Is.EqualTo("55")); } }
public static void ImportSettings() { var parser = new FileIniDataParser(); data.Merge(parser.ReadFile("Configuration.ini")); }
public static bool LoadSettings() { try { if (File.Exists(ConfigIniPath)) { FileIniDataParser parser = new FileIniDataParser(); IniData configdata = parser.ReadFile(ConfigIniPath); string compareIni = null; try { // get the current versions ini data compareIni = ValheimPlusPlugin.getCurrentWebIniFile(); } catch (Exception e) { } if (compareIni != null) { StreamReader reader = new StreamReader(new MemoryStream(System.Text.Encoding.ASCII.GetBytes(compareIni))); IniData webConfig = parser.ReadData(reader); // Duplication of comments otherwise with this merge function. configdata.ClearAllComments(); webConfig.Merge(configdata); parser.WriteFile(ConfigIniPath, webConfig); } Configuration.Current = LoadFromIni(ConfigIniPath); } else { Debug.LogError("Error: Configuration not found. Trying to download latest config."); // download latest ini if not present bool status = false; try { string defaultIni = ValheimPlusPlugin.getCurrentWebIniFile(); if (defaultIni != null) { System.IO.File.WriteAllText(ConfigIniPath, defaultIni); Debug.Log("Default Configuration downloaded. Loading downloaded default settings."); Configuration.Current = LoadFromIni(ConfigIniPath); status = true; } } catch (Exception e) { } return(status); } } catch (Exception ex) { Debug.LogError($"Could not load config file: {ex}"); return(false); } return(true); }
private void InitializeDefault(string ini) { _default = StringParser.Parse(ini); _merged.Merge(_default); }
public void Merge(IniData newData) { data.Merge(newData); }
static void Main(string[] args) { //lists to store Country code, PI code & Programme Service name from Lookup table. List <string> Master_List = new List <string> (); List <string> list_CC = new List <string> (); List <string> list_ECC = new List <string> (); List <string> list_PI = new List <string> (); List <string> list_PSN = new List <string> (); //filtered PI & PSN containing only information related to country selected by the user. List <string> firstFewPI = new List <string> (); List <string> firstFewPSN = new List <string> (); List <string> firstFewECC = new List <string> (); /* * foreach (var a in args) { * Console.WriteLine ("Arguments to print are: ", a + System.Environment.NewLine); * }*/ double start_freq = Convert.ToDouble(args[0]); int stations2create = Int32.Parse(args[1]); string region = args[2]; if ((start_freq > 108.0) || (start_freq < 88.0)) { // The user wants to exit the application. Close everything down. Console.WriteLine("Invalid start frequency ! only 88-108MHz is accepted ! Exiting..."); Environment.Exit(-1); } //lists to hold 34 frequencies from 88-107.8 MHz. List <string> list_random_FMfreq = new List <string> (); int i_count = 0; //for loop runs until the end of frequency is reached and then is reset back to start. //use mod operator "%" if needed to create a station of more than 34 list size. for (double i_loop = start_freq; i_loop <= Constants.end_freq; i_loop += Constants.freq_increment) { //convert double var to single decimal point var and copy to string of lists. i_loop = Math.Round(i_loop, 1); string str = i_loop.ToString(CultureInfo.GetCultureInfo("en-GB")); list_random_FMfreq.Add(str); i_count++; } if (i_count < stations2create) { for (double i_loop = start_freq; i_count <= stations2create; i_loop += Constants.freq_increment) { //convert double var to single decimal point var and copy to string of lists. if (i_loop >= Constants.end_freq) { i_loop = start_freq; } i_loop = Math.Round(i_loop, 1); string str = i_loop.ToString(CultureInfo.GetCultureInfo("en-GB")); list_random_FMfreq.Add(str); i_count++; } } using (var reader = new StreamReader(@"LUT.csv")) { //read 1 time outside the while loop to skip reading the heading row ! reader.ReadLine(); while (!reader.EndOfStream) { var line = reader.ReadLine(); Master_List.Add(line); } } IListExtensions.Shuffle(Master_List); foreach (var item in Master_List) { var values = item.Split(','); list_CC.Add(values[0]); list_ECC.Add(values[1]); list_PI.Add(values[2]); list_PSN.Add(values[3]); } /* * //disabled routine to extract the distinct countries used in LUT table and construct windows form. * // Get distinct Country Code and convert into a list again. * List<string> list_Distinct_CC = new List<string>(); * * //lists to be available as input to the user in drop-down box. * list_Distinct_CC = list_CC.Distinct().ToList(); * * foreach(var item in list_Distinct_CC) * { * string pre = "\""; * string post = "\","; * string merge = string.Concat(pre,item,post); * * Console.WriteLine(item); * } */ var search_CC_List = list_CC .Select((v, i) => new { Index = i, Value = v }) .Where(x => x.Value == region) .Select(x => x.Index) .ToList(); //skip few random stations within first 50 items and take as many stations as requested by the user. Random rnd = new Random(); if ((search_CC_List.Count > 50) && (search_CC_List.Count > stations2create)) { if (region == "DE") { foreach (var item in search_CC_List) { int temp = Convert.ToInt32(list_PI[item], 16); int DE_code = 0xD000; int count = 0; if ((temp & DE_code) == DE_code) { if (count <= stations2create) { firstFewECC.Add(list_ECC[item]); firstFewPI.Add(list_PI[item]); firstFewPSN.Add(list_PSN[item]); count++; } } } } else { foreach (var item in search_CC_List.Skip(rnd.Next(1, 50)).Take(stations2create)) { firstFewECC.Add(list_ECC[item]); firstFewPI.Add(list_PI[item]); firstFewPSN.Add(list_PSN[item]); } } } else { if (search_CC_List.Count < stations2create) { stations2create = search_CC_List.Count; } foreach (var item in search_CC_List.Take(stations2create)) { firstFewECC.Add(list_ECC[item]); firstFewPI.Add(list_PI[item]); firstFewPSN.Add(list_PSN[item]); } } string builder_channel = File.ReadAllText(@"builder_channel.txt", Encoding.UTF8); string builder_rds = File.ReadAllText(@"builder_rds.txt", Encoding.UTF8); string audio_file = File.ReadAllText(@"audio_playlist.txt", Encoding.UTF8); var parser = new FileIniDataParser(); string fileName = string.Concat("parser_", DateTime.Now.ToString("HHmmss") + ".ini"); using (File.Create(fileName)) { } IniData data = parser.ReadFile(fileName); foreach (var i in Enumerable.Range(1, stations2create)) { string channel = String.Concat("channel.", i); data.Sections.AddSection(channel); string rds = String.Concat("rds.", i); data.Sections.AddSection(rds); } //routine to append channel & rds parameter text to parser ini file using (File.Create(@"merge_content.ini")) { } using (var write = File.CreateText(@"merge_content.ini")) { write.WriteLine(audio_file); foreach (var i in Enumerable.Range(1, stations2create)) { string channel = String.Concat("[channel.", i, "]"); string rds = String.Concat("[rds.", i, "]"); write.WriteLine(channel); write.WriteLine(builder_channel); write.WriteLine(rds); write.WriteLine(builder_rds); } } foreach (var i in Enumerable.Range(1, stations2create)) { string channel = String.Concat("channel.", i); string rds = String.Concat("rds.", i); data[channel]["freq"] = list_random_FMfreq[i - 1]; data[channel]["idrds"] = i.ToString(); data[rds]["name"] = String.Concat("RDS_", i); long Dec = Int32.Parse(firstFewECC[i - 1], System.Globalization.NumberStyles.HexNumber); string DecString = String.Format("{0:0}", Dec); data[rds]["slow"] = DecString; data[rds]["ps"] = firstFewPSN[i - 1]; data[rds]["pi"] = firstFewPI[i - 1]; } var merge_parser = new IniParser.Parser.IniDataParser(); IniData user_config = merge_parser.Parse(File.ReadAllText("merge_content.ini")); data.Merge(user_config); //Save the file parser.WriteFile(fileName, data); File.Copy(fileName, Path.ChangeExtension(fileName, ".fm")); }