public void DataReset() { //pIDIni.SetInt("Exp", 0); //pIDIni.SetInt("Level", 1); //pIDIni.SetInt("MaxCombo", 0); //pIDIni.SetInt("BasicRemainTurn", 5); //pIDIni.SetInt("TotalTurn", 0); //pIDIni.SetInt("MakeCountHistory2", 0); //pIDIni.SetInt("MakeCountHistory3", 0); //pIDIni.SetInt("MakeCountHistory4", 0); //pIDIni.SetInt("MakeCountHistory5", 0); pIDIni.Clear(); pIDIni.Save("ProjectID"); }
private static int Clear(IntPtr L) { int result; try { ToLua.CheckArgsCount(L, 1); IniFile iniFile = (IniFile)ToLua.CheckObject(L, 1, typeof(IniFile)); iniFile.Clear(); result = 0; } catch (Exception e) { result = LuaDLL.toluaL_exception(L, e, null); } return(result); }
private void LoadInfo()//가변형 { IniFile ini = new IniFile(); ini.Load(Directory.GetCurrentDirectory() + "\\config\\gatewaysvr.ini"); server_cnt = ini["Default"]["server_cnt"].ToInt(); for (int i = 1; i <= server_cnt; i++) { m_ip.Add(ini[string.Format("Server_{0}", i)]["ip"].ToString()); m_state.Add(ini[string.Format("Server_{0}", i)]["state"].ToInt()); m_port.Add(ini[string.Format("Server_{0}", i)]["port"].ToInt()); m_name.Add(ini[string.Format("Server_{0}", i)]["name"].ToString()); m_tag_state.Add(ini[string.Format("Server_{0}", i)]["tag_state"].ToInt()); m_sort.Add(ini[string.Format("Server_{0}", i)]["sort"].ToInt()); m_proxy_ip.Add(ini[string.Format("Server_{0}", i)]["proxy_ip"].ToString()); m_proxy_port.Add(ini[string.Format("Server_{0}", i)]["proxy_port"].ToInt()); } ini.Clear(); ini.Load(Directory.GetCurrentDirectory() + "\\config\\notice.ini"); is_on = ini["Default"]["On"].ToInt() == 1 ? true : false; m_title = ini["Default"]["title"].ToString(); if (ini["Default"]["content_1"].ToString().Length > 1) { m_content += ini["Default"]["content_1"].ToString(); } if (ini["Default"]["content_2"].ToString().Length > 1) { m_content += "\n" + ini["Default"]["content_2"].ToString(); } if (ini["Default"]["content_3"].ToString().Length > 1) { m_content += "\n" + ini["Default"]["content_3"].ToString(); } if (ini["Default"]["content_4"].ToString().Length > 1) { m_content += "\n" + ini["Default"]["content_4"].ToString(); } }
private void Test() { IniFile.KeyPair testPair = new IniFile.KeyPair("1", "2", "3"); IniFile testIni1 = new IniFile(); IniFile testIni2 = new IniFile(); ReadOnlyCollection<string> keys; ReadOnlyCollection<IniFile.KeyPair> values; byte[] testBytes = new byte[] { 1, 2, 4, 8, 15, 35, 93, 167, 216 }; #region IniFile.KeyPair #region IniFile.KeyPair.Equals AssertEqual(testPair.Equals(null), false); AssertEqual(testPair.Equals(testPair), true); AssertEqual(testPair.Equals("Hello World"), false); AssertEqual(testPair.Equals(new IniFile.KeyPair("1", "2", "3")), true); AssertEqual(new IniFile.KeyPair("1", "2", "3").Equals(testPair), true); AssertEqual(new IniFile.KeyPair("1", "2", "3"), new IniFile.KeyPair("1", "2", "3")); #endregion // --------------------------------------------------------------------------------- #region IniFile.KeyPair.ToString AssertEqual(new IniFile.KeyPair("1", "2", "3").ToString(), "[KeyPair: key=1, value=2, comment=3]"); #endregion #endregion // =================================================================================== #region IniFile #region IniFile constructor AssertEqual(testIni1.count, 0); AssertEqual(testIni1.keys.Count, 0); AssertEqual(testIni1.values.Count, 0); AssertEqual(testIni1.currentGroup, ""); AssertEqual(testIni1.ToString(), ""); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Set function testIni1.Set("Key 1", 1); testIni1.Set("Key 2", 2, "Comment 2"); testIni1.Set("Key 3", 0.1f); testIni1.Set("Key 4", 0.2f, "Comment 4"); testIni1.Set("Key 5", 0.1); testIni1.Set("Key 6", 0.2, "Comment 6"); testIni1.Set("Key 7", true); testIni1.Set("Key 8", false, "Comment 8"); testIni1.Set("Key 9", testBytes); testIni1.Set("Key 10", testBytes, "Comment 10"); testIni1.Set("Key 11", testPair); testIni1.Set("Key 12", testPair, "Comment 12"); testIni1.Set("Key 13", " Hello"); testIni1.Set("Key 14", "World ", "Comment 14"); AssertEqual(testIni1.count, 14); AssertEqual(testIni1.keys.Count, 14); AssertEqual(testIni1.values.Count, 14); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; for (int i = 0; i < 14; ++i) { AssertEqual(keys[i], "Key " + (i + 1)); AssertEqual(values[i].key, "Key " + (i + 1)); } AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "2"); AssertEqual(values[2].value, "0.1"); AssertEqual(values[3].value, "0.2"); AssertEqual(values[4].value, "0.1"); AssertEqual(values[5].value, "0.2"); AssertEqual(values[6].value, "True"); AssertEqual(values[7].value, "False"); AssertEqual(values[8].value, "010204080F235DA7D8"); AssertEqual(values[9].value, "010204080F235DA7D8"); AssertEqual(values[10].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[11].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[12].value, " Hello"); AssertEqual(values[13].value, "World "); AssertEqual(values[0].comment, ""); AssertEqual(values[1].comment, "Comment 2"); AssertEqual(values[2].comment, ""); AssertEqual(values[3].comment, "Comment 4"); AssertEqual(values[4].comment, ""); AssertEqual(values[5].comment, "Comment 6"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 8"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 10"); AssertEqual(values[10].comment, ""); AssertEqual(values[11].comment, "Comment 12"); AssertEqual(values[12].comment, ""); AssertEqual(values[13].comment, "Comment 14"); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "Key 7 = True\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n" + "; Comment 14\n" + "Key 14 = \"World \"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Get function AssertEqual(testIni1.Get("Key 1", 11), 1); AssertEqual(testIni1.Get("Nothing", 12), 12); AssertEqual(testIni1.Get("Key 7", 13), 13); AssertEqual(testIni1.Get("Key 3", 10.1f), 0.1f); AssertEqual(testIni1.Get("Nothing", 10.2f), 10.2f); AssertEqual(testIni1.Get("Key 7", 10.3f), 10.3f); AssertEqual(testIni1.Get("Key 5", 10.1), 0.1); AssertEqual(testIni1.Get("Nothing", 10.2), 10.2); AssertEqual(testIni1.Get("Key 7", 10.3), 10.3); AssertEqual(testIni1.Get("Key 7", false), true); AssertEqual(testIni1.Get("Nothing", false), false); AssertEqual(testIni1.Get("Key 9", true), true); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Key 9", testBytes), testBytes), true); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Nothing", new byte[3]), testBytes), false); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Key 11", new byte[3]), testBytes), false); AssertEqual(testIni1.Get("Key 11"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Key 12"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Key 13", "World"), " Hello"); AssertEqual(testIni1.Get("Nothing", "Test"), "Test"); AssertEqual(testIni1.Get("Key 14"), "World "); AssertEqual(testIni1.Get("Nothing"), ""); AssertEqual(testIni1.count, 14); AssertEqual(testIni1.keys.Count, 14); AssertEqual(testIni1.values.Count, 14); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; for (int i = 0; i < 14; ++i) { AssertEqual(keys[i], "Key " + (i + 1)); AssertEqual(values[i].key, "Key " + (i + 1)); } AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "2"); AssertEqual(values[2].value, "0.1"); AssertEqual(values[3].value, "0.2"); AssertEqual(values[4].value, "0.1"); AssertEqual(values[5].value, "0.2"); AssertEqual(values[6].value, "True"); AssertEqual(values[7].value, "False"); AssertEqual(values[8].value, "010204080F235DA7D8"); AssertEqual(values[9].value, "010204080F235DA7D8"); AssertEqual(values[10].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[11].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[12].value, " Hello"); AssertEqual(values[13].value, "World "); AssertEqual(values[0].comment, ""); AssertEqual(values[1].comment, "Comment 2"); AssertEqual(values[2].comment, ""); AssertEqual(values[3].comment, "Comment 4"); AssertEqual(values[4].comment, ""); AssertEqual(values[5].comment, "Comment 6"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 8"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 10"); AssertEqual(values[10].comment, ""); AssertEqual(values[11].comment, "Comment 12"); AssertEqual(values[12].comment, ""); AssertEqual(values[13].comment, "Comment 14"); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "Key 7 = True\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n" + "; Comment 14\n" + "Key 14 = \"World \"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile ContainsKey function AssertEqual(testIni1.ContainsKey("Key 1"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); #endregion // --------------------------------------------------------------------------------- #region IniFile Remove function AssertEqual(testIni1.Remove("Key 1"), true); AssertEqual(testIni1.Remove("Key 7"), true); AssertEqual(testIni1.Remove("Key 14"), true); AssertEqual(testIni1.Remove("Nothing"), true); AssertEqual(testIni1.count, 11); AssertEqual(testIni1.keys.Count, 11); AssertEqual(testIni1.values.Count, 11); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Key 3"); AssertEqual(keys[2], "Key 4"); AssertEqual(keys[3], "Key 5"); AssertEqual(keys[4], "Key 6"); AssertEqual(keys[5], "Key 8"); AssertEqual(keys[6], "Key 9"); AssertEqual(keys[7], "Key 10"); AssertEqual(keys[8], "Key 11"); AssertEqual(keys[9], "Key 12"); AssertEqual(keys[10], "Key 13"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Key 3"); AssertEqual(values[2].key, "Key 4"); AssertEqual(values[3].key, "Key 5"); AssertEqual(values[4].key, "Key 6"); AssertEqual(values[5].key, "Key 8"); AssertEqual(values[6].key, "Key 9"); AssertEqual(values[7].key, "Key 10"); AssertEqual(values[8].key, "Key 11"); AssertEqual(values[9].key, "Key 12"); AssertEqual(values[10].key, "Key 13"); AssertEqual(values[0].value, "2"); AssertEqual(values[1].value, "0.1"); AssertEqual(values[2].value, "0.2"); AssertEqual(values[3].value, "0.1"); AssertEqual(values[4].value, "0.2"); AssertEqual(values[5].value, "False"); AssertEqual(values[6].value, "010204080F235DA7D8"); AssertEqual(values[7].value, "010204080F235DA7D8"); AssertEqual(values[8].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[9].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[10].value, " Hello"); AssertEqual(values[0].comment, "Comment 2"); AssertEqual(values[1].comment, ""); AssertEqual(values[2].comment, "Comment 4"); AssertEqual(values[3].comment, ""); AssertEqual(values[4].comment, "Comment 6"); AssertEqual(values[5].comment, "Comment 8"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 10"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 12"); AssertEqual(values[10].comment, ""); AssertEqual(testIni1.ToString(), "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile RenameKey function AssertEqual(testIni1.RenameKey("Key 2", "Key 1"), true); //AssertEqual(testIni1.RenameKey("Nothing", "Key 1"), false); // To check for error AssertEqual(testIni1.RenameKey("Key 4", "Key 6"), true); AssertEqual(testIni1.count, 10); AssertEqual(testIni1.keys.Count, 10); AssertEqual(testIni1.values.Count, 10); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Key 3"); AssertEqual(keys[2], "Key 6"); AssertEqual(keys[3], "Key 5"); AssertEqual(keys[4], "Key 8"); AssertEqual(keys[5], "Key 9"); AssertEqual(keys[6], "Key 10"); AssertEqual(keys[7], "Key 11"); AssertEqual(keys[8], "Key 12"); AssertEqual(keys[9], "Key 13"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Key 3"); AssertEqual(values[2].key, "Key 6"); AssertEqual(values[3].key, "Key 5"); AssertEqual(values[4].key, "Key 8"); AssertEqual(values[5].key, "Key 9"); AssertEqual(values[6].key, "Key 10"); AssertEqual(values[7].key, "Key 11"); AssertEqual(values[8].key, "Key 12"); AssertEqual(values[9].key, "Key 13"); AssertEqual(values[0].value, "2"); AssertEqual(values[1].value, "0.1"); AssertEqual(values[2].value, "0.2"); AssertEqual(values[3].value, "0.1"); AssertEqual(values[4].value, "False"); AssertEqual(values[5].value, "010204080F235DA7D8"); AssertEqual(values[6].value, "010204080F235DA7D8"); AssertEqual(values[7].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[8].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[9].value, " Hello"); AssertEqual(values[0].comment, "Comment 2"); AssertEqual(values[1].comment, ""); AssertEqual(values[2].comment, "Comment 4"); AssertEqual(values[3].comment, ""); AssertEqual(values[4].comment, "Comment 8"); AssertEqual(values[5].comment, ""); AssertEqual(values[6].comment, "Comment 10"); AssertEqual(values[7].comment, ""); AssertEqual(values[8].comment, "Comment 12"); AssertEqual(values[9].comment, ""); AssertEqual(testIni1.ToString(), "; Comment 2\n" + "Key 1 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 6 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Clear function testIni1.BeginGroup("MyGroup"); AssertEqual(testIni1.currentGroup, "MyGroup/"); testIni1.Clear(); testIni2.Clear(); AssertEqual(testIni1.count, 0); AssertEqual(testIni1.keys.Count, 0); AssertEqual(testIni1.values.Count, 0); AssertEqual(testIni1.currentGroup, ""); AssertEqual(testIni2.currentGroup, ""); AssertEqual(testIni1.ToString(), ""); AssertEqual(testIni1, testIni2); #endregion #endregion // =================================================================================== #region IniFile groups #region IniFile Set function testIni1.SetInt("Key 1", 1); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, ""); testIni1.BeginGroup("Group 1"); testIni1.SetFloat("Key 2", 0.2f); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.BeginGroup("Subgroup 1"); testIni1.SetDouble("Key 3", 0.3); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 1/Subgroup 1/"); testIni1.EndGroup(); AssertEqual(testIni1.count, 2); AssertEqual(testIni1.keys.Count, 2); AssertEqual(testIni1.values.Count, 2); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.SetBool("Subgroup 1/Key 4", true); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.EndGroup(); AssertEqual(testIni1.count, 4); AssertEqual(testIni1.keys.Count, 4); AssertEqual(testIni1.values.Count, 4); AssertEqual(testIni1.currentGroup, ""); testIni1.SetByteArray("Group 2/Key 5", testBytes); AssertEqual(testIni1.count, 5); AssertEqual(testIni1.keys.Count, 5); AssertEqual(testIni1.values.Count, 5); AssertEqual(testIni1.currentGroup, ""); testIni1.Set("Group 2/Subgroup 1/Key 6", testPair); AssertEqual(testIni1.count, 6); AssertEqual(testIni1.keys.Count, 6); AssertEqual(testIni1.values.Count, 6); AssertEqual(testIni1.currentGroup, ""); testIni1.SetString("Group 2/Subgroup 2/Key 7", "Hello World!\t"); //testIni1.EndGroup(); // To check for error AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Get function AssertEqual(testIni1.GetInt("Key 1"), 1); AssertEqual(testIni1.GetInt("Nothing", 2), 2); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.GetFloat("Key 2"), 0.2f); AssertEqual(testIni1.GetFloat("Nothing", 10.2f), 10.2f); testIni1.BeginGroup("Subgroup 1"); AssertEqual(testIni1.GetDouble("Key 3"), 0.3); AssertEqual(testIni1.GetDouble("Nothing", 10.3), 10.3); testIni1.EndGroup(); AssertEqual(testIni1.GetBool("Subgroup 1/Key 4"), true); AssertEqual(testIni1.GetBool("Subgroup 1/Nothing", false), false); testIni1.EndGroup(); AssertEqual(Enumerable.SequenceEqual(testIni1.GetByteArray("Group 2/Key 5"), testBytes), true); AssertEqual(Enumerable.SequenceEqual(testIni1.GetByteArray("Group 2/Nothing", new byte[2]), testBytes), false); AssertEqual(testIni1.Get("Group 2/Subgroup 1/Key 6"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Group 2/Subgroup 1/Nothing"), ""); AssertEqual(testIni1.GetString("Group 2/Subgroup 2/Key 7"), "Hello World!\t"); AssertEqual(testIni1.GetString("Group 2/Subgroup 2/Nothing", "Yahoo"), "Yahoo"); AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile ContainsKey function AssertEqual(testIni1.ContainsKey("Key 1"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.ContainsKey("Key 2"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.BeginGroup("Subgroup 1"); AssertEqual(testIni1.ContainsKey("Key 3"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.EndGroup(); AssertEqual(testIni1.ContainsKey("Subgroup 1/Key 4"), true); AssertEqual(testIni1.ContainsKey("Subgroup 1/Nothing"), false); testIni1.EndGroup(); AssertEqual(testIni1.ContainsKey("Group 2/Key 5"), true); AssertEqual(testIni1.ContainsKey("Group 2/Nothing"), false); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 1/Key 6"), true); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 1/Nothing"), false); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 2/Key 7"), true); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 2/Nothing"), false); #endregion // --------------------------------------------------------------------------------- #region IniFile Save/Load functions testIni1.Save("UnitTest"); testIni2.Load("UnitTest"); AssertEqual(testIni1, testIni2); AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Remove function AssertEqual(testIni1.Remove("Key 1"), true); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.Remove("Key 5"), true); testIni1.EndGroup(); AssertEqual(testIni1.count, 5); AssertEqual(testIni1.keys.Count, 5); AssertEqual(testIni1.values.Count, 5); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Group 1/Key 2"); AssertEqual(keys[1], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[3], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[4], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Group 1/Key 2"); AssertEqual(values[1].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[3].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[4].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); AssertEqual(values[3].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[4].value, "Hello World!\t"); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.count, 2); AssertEqual(testIni1.keys.Count, 2); AssertEqual(testIni1.values.Count, 2); AssertEqual(testIni1.currentGroup, "Group 2/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Subgroup 1/Key 6"); AssertEqual(keys[1], "Subgroup 2/Key 7"); AssertEqual(values[0].key, "Subgroup 1/Key 6"); AssertEqual(values[1].key, "Subgroup 2/Key 7"); AssertEqual(values[0].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[1].value, "Hello World!\t"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile RenameKey function AssertEqual(testIni1.RenameKey("Group 1/Key 2", "Group 1/Subgroup 1/Key 2"), true); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.RenameKey("Subgroup 2/Key 7", "Subgroup 1/Key 6"), true); testIni1.EndGroup(); AssertEqual(testIni1.count, 4); AssertEqual(testIni1.keys.Count, 4); AssertEqual(testIni1.values.Count, 4); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Group 1/Subgroup 1/Key 2"); AssertEqual(keys[1], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[3], "Group 2/Subgroup 1/Key 6"); AssertEqual(values[0].key, "Group 1/Subgroup 1/Key 2"); AssertEqual(values[1].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[3].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); AssertEqual(values[3].value, "Hello World!\t"); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 2/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Subgroup 1/Key 6"); AssertEqual(values[0].key, "Subgroup 1/Key 6"); AssertEqual(values[0].value, "Hello World!\t"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "[Group 1/Subgroup 1]\n" + "\n" + "Key 2 = 0.2\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion #endregion }
private void InstallUpdateFiles(string[] files) { if (files != null) { StartNewInstallStage(2, files.Length); foreach (string file in files) { bool isScriptFile = new FileInfo(file).Directory.Name == "script"; string oldFileName; if (isScriptFile) { oldFileName = Path.GetFileName(Path.Combine(Environment.CurrentDirectory, "script", Path.GetFileName(file))); } else { oldFileName = Path.GetFileName(Path.Combine(Environment.CurrentDirectory, Path.GetFileName(file))); } if (file.Contains("NFSU2ExtraOptionsSettings.ini")) { string oldConfigFile = Path.Combine("scripts", "NFSU2ExtraOptionsSettings.ini"); string updateConfigFile = Path.Combine("update", oldConfigFile); if (File.Exists(oldConfigFile)) { IniFile oldConfig = new IniFile(); IniFile newConfig = new IniFile(); oldConfig.Load(oldConfigFile); newConfig.Load(updateConfigFile); IniFile mergedConfig = IniFile.Merge(oldConfig, newConfig); File.Delete(oldConfigFile); mergedConfig.SaveAs(oldConfigFile); oldConfig.Clear(); newConfig.Clear(); File.Delete(updateConfigFile); } else { File.Move(file, oldFileName); } } else if (!file.Contains("ExOpts-Installer.exe") && !file.Contains("DESTRY.dll")) { if (File.Exists(oldFileName)) { File.Delete(oldFileName); } File.Move(file, oldFileName); } IncreaseInstallProgress(); } Logs.WriteLog("Update files has been installed", "INFO"); } Logs.WriteLog("Update files has been not installed. Files to install has been null", "ERROR"); }
private void Test() { IniFile.KeyPair testPair = new IniFile.KeyPair("1", "2", "3"); IniFile testIni1 = new IniFile(); IniFile testIni2 = new IniFile(); ReadOnlyCollection <string> keys; ReadOnlyCollection <IniFile.KeyPair> values; byte[] testBytes = new byte[] { 1, 2, 4, 8, 15, 35, 93, 167, 216 }; #region IniFile.KeyPair #region IniFile.KeyPair.Equals AssertEqual(testPair.Equals(null), false); AssertEqual(testPair.Equals(testPair), true); AssertEqual(testPair.Equals("Hello World"), false); AssertEqual(testPair.Equals(new IniFile.KeyPair("1", "2", "3")), true); AssertEqual(new IniFile.KeyPair("1", "2", "3").Equals(testPair), true); AssertEqual(new IniFile.KeyPair("1", "2", "3"), new IniFile.KeyPair("1", "2", "3")); #endregion // --------------------------------------------------------------------------------- #region IniFile.KeyPair.ToString AssertEqual(new IniFile.KeyPair("1", "2", "3").ToString(), "[KeyPair: key=1, value=2, comment=3]"); #endregion #endregion // =================================================================================== #region IniFile #region IniFile constructor AssertEqual(testIni1.count, 0); AssertEqual(testIni1.keys.Count, 0); AssertEqual(testIni1.values.Count, 0); AssertEqual(testIni1.currentGroup, ""); AssertEqual(testIni1.ToString(), ""); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Set function testIni1.Set("Key 1", 1); testIni1.Set("Key 2", 2, "Comment 2"); testIni1.Set("Key 3", 0.1f); testIni1.Set("Key 4", 0.2f, "Comment 4"); testIni1.Set("Key 5", 0.1); testIni1.Set("Key 6", 0.2, "Comment 6"); testIni1.Set("Key 7", true); testIni1.Set("Key 8", false, "Comment 8"); testIni1.Set("Key 9", testBytes); testIni1.Set("Key 10", testBytes, "Comment 10"); testIni1.Set("Key 11", testPair); testIni1.Set("Key 12", testPair, "Comment 12"); testIni1.Set("Key 13", " Hello"); testIni1.Set("Key 14", "World ", "Comment 14"); AssertEqual(testIni1.count, 14); AssertEqual(testIni1.keys.Count, 14); AssertEqual(testIni1.values.Count, 14); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; for (int i = 0; i < 14; ++i) { AssertEqual(keys[i], "Key " + (i + 1)); AssertEqual(values[i].key, "Key " + (i + 1)); } AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "2"); AssertEqual(values[2].value, "0.1"); AssertEqual(values[3].value, "0.2"); AssertEqual(values[4].value, "0.1"); AssertEqual(values[5].value, "0.2"); AssertEqual(values[6].value, "True"); AssertEqual(values[7].value, "False"); AssertEqual(values[8].value, "010204080F235DA7D8"); AssertEqual(values[9].value, "010204080F235DA7D8"); AssertEqual(values[10].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[11].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[12].value, " Hello"); AssertEqual(values[13].value, "World "); AssertEqual(values[0].comment, ""); AssertEqual(values[1].comment, "Comment 2"); AssertEqual(values[2].comment, ""); AssertEqual(values[3].comment, "Comment 4"); AssertEqual(values[4].comment, ""); AssertEqual(values[5].comment, "Comment 6"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 8"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 10"); AssertEqual(values[10].comment, ""); AssertEqual(values[11].comment, "Comment 12"); AssertEqual(values[12].comment, ""); AssertEqual(values[13].comment, "Comment 14"); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "Key 7 = True\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n" + "; Comment 14\n" + "Key 14 = \"World \"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Get function AssertEqual(testIni1.Get("Key 1", 11), 1); AssertEqual(testIni1.Get("Nothing", 12), 12); AssertEqual(testIni1.Get("Key 7", 13), 13); AssertEqual(testIni1.Get("Key 3", 10.1f), 0.1f); AssertEqual(testIni1.Get("Nothing", 10.2f), 10.2f); AssertEqual(testIni1.Get("Key 7", 10.3f), 10.3f); AssertEqual(testIni1.Get("Key 5", 10.1), 0.1); AssertEqual(testIni1.Get("Nothing", 10.2), 10.2); AssertEqual(testIni1.Get("Key 7", 10.3), 10.3); AssertEqual(testIni1.Get("Key 7", false), true); AssertEqual(testIni1.Get("Nothing", false), false); AssertEqual(testIni1.Get("Key 9", true), true); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Key 9", testBytes), testBytes), true); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Nothing", new byte[3]), testBytes), false); AssertEqual(Enumerable.SequenceEqual(testIni1.Get("Key 11", new byte[3]), testBytes), false); AssertEqual(testIni1.Get("Key 11"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Key 12"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Key 13", "World"), " Hello"); AssertEqual(testIni1.Get("Nothing", "Test"), "Test"); AssertEqual(testIni1.Get("Key 14"), "World "); AssertEqual(testIni1.Get("Nothing"), ""); AssertEqual(testIni1.count, 14); AssertEqual(testIni1.keys.Count, 14); AssertEqual(testIni1.values.Count, 14); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; for (int i = 0; i < 14; ++i) { AssertEqual(keys[i], "Key " + (i + 1)); AssertEqual(values[i].key, "Key " + (i + 1)); } AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "2"); AssertEqual(values[2].value, "0.1"); AssertEqual(values[3].value, "0.2"); AssertEqual(values[4].value, "0.1"); AssertEqual(values[5].value, "0.2"); AssertEqual(values[6].value, "True"); AssertEqual(values[7].value, "False"); AssertEqual(values[8].value, "010204080F235DA7D8"); AssertEqual(values[9].value, "010204080F235DA7D8"); AssertEqual(values[10].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[11].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[12].value, " Hello"); AssertEqual(values[13].value, "World "); AssertEqual(values[0].comment, ""); AssertEqual(values[1].comment, "Comment 2"); AssertEqual(values[2].comment, ""); AssertEqual(values[3].comment, "Comment 4"); AssertEqual(values[4].comment, ""); AssertEqual(values[5].comment, "Comment 6"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 8"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 10"); AssertEqual(values[10].comment, ""); AssertEqual(values[11].comment, "Comment 12"); AssertEqual(values[12].comment, ""); AssertEqual(values[13].comment, "Comment 14"); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "Key 7 = True\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n" + "; Comment 14\n" + "Key 14 = \"World \"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile ContainsKey function AssertEqual(testIni1.ContainsKey("Key 1"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); #endregion // --------------------------------------------------------------------------------- #region IniFile Remove function AssertEqual(testIni1.Remove("Key 1"), true); AssertEqual(testIni1.Remove("Key 7"), true); AssertEqual(testIni1.Remove("Key 14"), true); AssertEqual(testIni1.Remove("Nothing"), true); AssertEqual(testIni1.count, 11); AssertEqual(testIni1.keys.Count, 11); AssertEqual(testIni1.values.Count, 11); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Key 3"); AssertEqual(keys[2], "Key 4"); AssertEqual(keys[3], "Key 5"); AssertEqual(keys[4], "Key 6"); AssertEqual(keys[5], "Key 8"); AssertEqual(keys[6], "Key 9"); AssertEqual(keys[7], "Key 10"); AssertEqual(keys[8], "Key 11"); AssertEqual(keys[9], "Key 12"); AssertEqual(keys[10], "Key 13"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Key 3"); AssertEqual(values[2].key, "Key 4"); AssertEqual(values[3].key, "Key 5"); AssertEqual(values[4].key, "Key 6"); AssertEqual(values[5].key, "Key 8"); AssertEqual(values[6].key, "Key 9"); AssertEqual(values[7].key, "Key 10"); AssertEqual(values[8].key, "Key 11"); AssertEqual(values[9].key, "Key 12"); AssertEqual(values[10].key, "Key 13"); AssertEqual(values[0].value, "2"); AssertEqual(values[1].value, "0.1"); AssertEqual(values[2].value, "0.2"); AssertEqual(values[3].value, "0.1"); AssertEqual(values[4].value, "0.2"); AssertEqual(values[5].value, "False"); AssertEqual(values[6].value, "010204080F235DA7D8"); AssertEqual(values[7].value, "010204080F235DA7D8"); AssertEqual(values[8].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[9].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[10].value, " Hello"); AssertEqual(values[0].comment, "Comment 2"); AssertEqual(values[1].comment, ""); AssertEqual(values[2].comment, "Comment 4"); AssertEqual(values[3].comment, ""); AssertEqual(values[4].comment, "Comment 6"); AssertEqual(values[5].comment, "Comment 8"); AssertEqual(values[6].comment, ""); AssertEqual(values[7].comment, "Comment 10"); AssertEqual(values[8].comment, ""); AssertEqual(values[9].comment, "Comment 12"); AssertEqual(values[10].comment, ""); AssertEqual(testIni1.ToString(), "; Comment 2\n" + "Key 2 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 4 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 6\n" + "Key 6 = 0.2\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile RenameKey function AssertEqual(testIni1.RenameKey("Key 2", "Key 1"), true); //AssertEqual(testIni1.RenameKey("Nothing", "Key 1"), false); // To check for error AssertEqual(testIni1.RenameKey("Key 4", "Key 6"), true); AssertEqual(testIni1.count, 10); AssertEqual(testIni1.keys.Count, 10); AssertEqual(testIni1.values.Count, 10); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Key 3"); AssertEqual(keys[2], "Key 6"); AssertEqual(keys[3], "Key 5"); AssertEqual(keys[4], "Key 8"); AssertEqual(keys[5], "Key 9"); AssertEqual(keys[6], "Key 10"); AssertEqual(keys[7], "Key 11"); AssertEqual(keys[8], "Key 12"); AssertEqual(keys[9], "Key 13"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Key 3"); AssertEqual(values[2].key, "Key 6"); AssertEqual(values[3].key, "Key 5"); AssertEqual(values[4].key, "Key 8"); AssertEqual(values[5].key, "Key 9"); AssertEqual(values[6].key, "Key 10"); AssertEqual(values[7].key, "Key 11"); AssertEqual(values[8].key, "Key 12"); AssertEqual(values[9].key, "Key 13"); AssertEqual(values[0].value, "2"); AssertEqual(values[1].value, "0.1"); AssertEqual(values[2].value, "0.2"); AssertEqual(values[3].value, "0.1"); AssertEqual(values[4].value, "False"); AssertEqual(values[5].value, "010204080F235DA7D8"); AssertEqual(values[6].value, "010204080F235DA7D8"); AssertEqual(values[7].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[8].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[9].value, " Hello"); AssertEqual(values[0].comment, "Comment 2"); AssertEqual(values[1].comment, ""); AssertEqual(values[2].comment, "Comment 4"); AssertEqual(values[3].comment, ""); AssertEqual(values[4].comment, "Comment 8"); AssertEqual(values[5].comment, ""); AssertEqual(values[6].comment, "Comment 10"); AssertEqual(values[7].comment, ""); AssertEqual(values[8].comment, "Comment 12"); AssertEqual(values[9].comment, ""); AssertEqual(testIni1.ToString(), "; Comment 2\n" + "Key 1 = 2\n" + "Key 3 = 0.1\n" + "; Comment 4\n" + "Key 6 = 0.2\n" + "Key 5 = 0.1\n" + "; Comment 8\n" + "Key 8 = False\n" + "Key 9 = 010204080F235DA7D8\n" + "; Comment 10\n" + "Key 10 = 010204080F235DA7D8\n" + "Key 11 = [KeyPair: key=1, value=2, comment=3]\n" + "; Comment 12\n" + "Key 12 = [KeyPair: key=1, value=2, comment=3]\n" + "Key 13 = \" Hello\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Clear function testIni1.BeginGroup("MyGroup"); AssertEqual(testIni1.currentGroup, "MyGroup/"); testIni1.Clear(); testIni2.Clear(); AssertEqual(testIni1.count, 0); AssertEqual(testIni1.keys.Count, 0); AssertEqual(testIni1.values.Count, 0); AssertEqual(testIni1.currentGroup, ""); AssertEqual(testIni2.currentGroup, ""); AssertEqual(testIni1.ToString(), ""); AssertEqual(testIni1, testIni2); #endregion #endregion // =================================================================================== #region IniFile groups #region IniFile Set function testIni1.SetInt("Key 1", 1); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, ""); testIni1.BeginGroup("Group 1"); testIni1.SetFloat("Key 2", 0.2f); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.BeginGroup("Subgroup 1"); testIni1.SetDouble("Key 3", 0.3); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 1/Subgroup 1/"); testIni1.EndGroup(); AssertEqual(testIni1.count, 2); AssertEqual(testIni1.keys.Count, 2); AssertEqual(testIni1.values.Count, 2); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.SetBool("Subgroup 1/Key 4", true); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); testIni1.EndGroup(); AssertEqual(testIni1.count, 4); AssertEqual(testIni1.keys.Count, 4); AssertEqual(testIni1.values.Count, 4); AssertEqual(testIni1.currentGroup, ""); testIni1.SetByteArray("Group 2/Key 5", testBytes); AssertEqual(testIni1.count, 5); AssertEqual(testIni1.keys.Count, 5); AssertEqual(testIni1.values.Count, 5); AssertEqual(testIni1.currentGroup, ""); testIni1.Set("Group 2/Subgroup 1/Key 6", testPair); AssertEqual(testIni1.count, 6); AssertEqual(testIni1.keys.Count, 6); AssertEqual(testIni1.values.Count, 6); AssertEqual(testIni1.currentGroup, ""); testIni1.SetString("Group 2/Subgroup 2/Key 7", "Hello World!\t"); //testIni1.EndGroup(); // To check for error AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Get function AssertEqual(testIni1.GetInt("Key 1"), 1); AssertEqual(testIni1.GetInt("Nothing", 2), 2); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.GetFloat("Key 2"), 0.2f); AssertEqual(testIni1.GetFloat("Nothing", 10.2f), 10.2f); testIni1.BeginGroup("Subgroup 1"); AssertEqual(testIni1.GetDouble("Key 3"), 0.3); AssertEqual(testIni1.GetDouble("Nothing", 10.3), 10.3); testIni1.EndGroup(); AssertEqual(testIni1.GetBool("Subgroup 1/Key 4"), true); AssertEqual(testIni1.GetBool("Subgroup 1/Nothing", false), false); testIni1.EndGroup(); AssertEqual(Enumerable.SequenceEqual(testIni1.GetByteArray("Group 2/Key 5"), testBytes), true); AssertEqual(Enumerable.SequenceEqual(testIni1.GetByteArray("Group 2/Nothing", new byte[2]), testBytes), false); AssertEqual(testIni1.Get("Group 2/Subgroup 1/Key 6"), "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(testIni1.Get("Group 2/Subgroup 1/Nothing"), ""); AssertEqual(testIni1.GetString("Group 2/Subgroup 2/Key 7"), "Hello World!\t"); AssertEqual(testIni1.GetString("Group 2/Subgroup 2/Nothing", "Yahoo"), "Yahoo"); AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile ContainsKey function AssertEqual(testIni1.ContainsKey("Key 1"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.ContainsKey("Key 2"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.BeginGroup("Subgroup 1"); AssertEqual(testIni1.ContainsKey("Key 3"), true); AssertEqual(testIni1.ContainsKey("Nothing"), false); testIni1.EndGroup(); AssertEqual(testIni1.ContainsKey("Subgroup 1/Key 4"), true); AssertEqual(testIni1.ContainsKey("Subgroup 1/Nothing"), false); testIni1.EndGroup(); AssertEqual(testIni1.ContainsKey("Group 2/Key 5"), true); AssertEqual(testIni1.ContainsKey("Group 2/Nothing"), false); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 1/Key 6"), true); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 1/Nothing"), false); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 2/Key 7"), true); AssertEqual(testIni1.ContainsKey("Group 2/Subgroup 2/Nothing"), false); #endregion // --------------------------------------------------------------------------------- #region IniFile Save/Load functions testIni1.Save("UnitTest"); testIni2.Load("UnitTest"); AssertEqual(testIni1, testIni2); AssertEqual(testIni1.count, 7); AssertEqual(testIni1.keys.Count, 7); AssertEqual(testIni1.values.Count, 7); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 1"); AssertEqual(keys[1], "Group 1/Key 2"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[3], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[4], "Group 2/Key 5"); AssertEqual(keys[5], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[6], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Key 1"); AssertEqual(values[1].key, "Group 1/Key 2"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[3].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[4].key, "Group 2/Key 5"); AssertEqual(values[5].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[6].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "1"); AssertEqual(values[1].value, "0.2"); AssertEqual(values[2].value, "0.3"); AssertEqual(values[3].value, "True"); AssertEqual(values[4].value, "010204080F235DA7D8"); AssertEqual(values[5].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[6].value, "Hello World!\t"); testIni1.BeginGroup("Group 1"); AssertEqual(testIni1.count, 3); AssertEqual(testIni1.keys.Count, 3); AssertEqual(testIni1.values.Count, 3); AssertEqual(testIni1.currentGroup, "Group 1/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Key 2"); AssertEqual(keys[1], "Subgroup 1/Key 3"); AssertEqual(keys[2], "Subgroup 1/Key 4"); AssertEqual(values[0].key, "Key 2"); AssertEqual(values[1].key, "Subgroup 1/Key 3"); AssertEqual(values[2].key, "Subgroup 1/Key 4"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "Key 1 = 1\n" + "\n" + "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2]\n" + "\n" + "Key 5 = 010204080F235DA7D8\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile Remove function AssertEqual(testIni1.Remove("Key 1"), true); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.Remove("Key 5"), true); testIni1.EndGroup(); AssertEqual(testIni1.count, 5); AssertEqual(testIni1.keys.Count, 5); AssertEqual(testIni1.values.Count, 5); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Group 1/Key 2"); AssertEqual(keys[1], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[3], "Group 2/Subgroup 1/Key 6"); AssertEqual(keys[4], "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].key, "Group 1/Key 2"); AssertEqual(values[1].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[3].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[4].key, "Group 2/Subgroup 2/Key 7"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); AssertEqual(values[3].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[4].value, "Hello World!\t"); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.count, 2); AssertEqual(testIni1.keys.Count, 2); AssertEqual(testIni1.values.Count, 2); AssertEqual(testIni1.currentGroup, "Group 2/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Subgroup 1/Key 6"); AssertEqual(keys[1], "Subgroup 2/Key 7"); AssertEqual(values[0].key, "Subgroup 1/Key 6"); AssertEqual(values[1].key, "Subgroup 2/Key 7"); AssertEqual(values[0].value, "[KeyPair: key=1, value=2, comment=3]"); AssertEqual(values[1].value, "Hello World!\t"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "[Group 1]\n" + "\n" + "Key 2 = 0.2\n" + "\n" + "[Group 1/Subgroup 1]\n" + "\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = [KeyPair: key=1, value=2, comment=3]\n" + "\n" + "[Group 2/Subgroup 2]\n" + "\n" + "Key 7 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion // --------------------------------------------------------------------------------- #region IniFile RenameKey function AssertEqual(testIni1.RenameKey("Group 1/Key 2", "Group 1/Subgroup 1/Key 2"), true); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.RenameKey("Subgroup 2/Key 7", "Subgroup 1/Key 6"), true); testIni1.EndGroup(); AssertEqual(testIni1.count, 4); AssertEqual(testIni1.keys.Count, 4); AssertEqual(testIni1.values.Count, 4); AssertEqual(testIni1.currentGroup, ""); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Group 1/Subgroup 1/Key 2"); AssertEqual(keys[1], "Group 1/Subgroup 1/Key 3"); AssertEqual(keys[2], "Group 1/Subgroup 1/Key 4"); AssertEqual(keys[3], "Group 2/Subgroup 1/Key 6"); AssertEqual(values[0].key, "Group 1/Subgroup 1/Key 2"); AssertEqual(values[1].key, "Group 1/Subgroup 1/Key 3"); AssertEqual(values[2].key, "Group 1/Subgroup 1/Key 4"); AssertEqual(values[3].key, "Group 2/Subgroup 1/Key 6"); AssertEqual(values[0].value, "0.2"); AssertEqual(values[1].value, "0.3"); AssertEqual(values[2].value, "True"); AssertEqual(values[3].value, "Hello World!\t"); testIni1.BeginGroup("Group 2"); AssertEqual(testIni1.count, 1); AssertEqual(testIni1.keys.Count, 1); AssertEqual(testIni1.values.Count, 1); AssertEqual(testIni1.currentGroup, "Group 2/"); keys = testIni1.keys; values = testIni1.values; AssertEqual(keys[0], "Subgroup 1/Key 6"); AssertEqual(values[0].key, "Subgroup 1/Key 6"); AssertEqual(values[0].value, "Hello World!\t"); testIni1.EndGroup(); AssertEqual(testIni1.ToString(), "[Group 1/Subgroup 1]\n" + "\n" + "Key 2 = 0.2\n" + "Key 3 = 0.3\n" + "Key 4 = True\n" + "\n" + "[Group 2/Subgroup 1]\n" + "\n" + "Key 6 = \"Hello World!\t\"\n"); testIni2.Parse(testIni1.ToString()); AssertEqual(testIni1, testIni2); #endregion #endregion }