예제 #1
0
        public void TestReader()
        {
            var fileName = "c:\\temp\\lala 123\\file name.exe";
            var test     =
                "[Service]\r\n" +
                $"Path1 = {fileName}\r\n" +
                $"Path2 = {fileName}\r\n";

            var ini = IniReader.Parse("ini", test);

            Assert.AreEqual(fileName, ini.ReadSetting("Service", "Path1"));
            Assert.AreEqual(fileName, ini.ReadSetting("Service", "Path2"));
        }
예제 #2
0
        static void Main()
        {
            IniReader ini = new IniReader("test.ini");

            Console.WriteLine(ini.ReadInteger("Section1", "KeyInt"));

            ini.Write("Section1", "KeyString", "MyString");
            ini.Write("Section1", "KeyInt", 5);
            ini.Write("Section2", "KeyBool", true);
            ini.Write("Section2", "KeyBytes", new byte[] { 0, 123, 255 });
            ini.Write("Section3", "KeyLong", (long)123456789101112);
            ini.Section = "Section1";

            Console.WriteLine("Tests finished");

            /*Application.EnableVisualStyles();
             * Application.SetCompatibleTextRenderingDefault(false);
             * Application.Run(new TestForm());*/
        }
예제 #3
0
        private void TestReader(IniReader reader, SettingsStructFields[] settings)
        {
            var fields1 = typeof(SettingsStructFields).GetFields().OrderBy(f => f.Name).ToArray();
            var fields2 = typeof(SettingsObjectFields).GetFields().OrderBy(f => f.Name).ToArray();
            var fields3 = typeof(SettingsStructProperties).GetProperties().OrderBy(f => f.Name).ToArray();
            var fields4 = typeof(SettingsObjectProperties).GetProperties().OrderBy(f => f.Name).ToArray();

            for (var i = 0; i < settings.Length; i++)
            {
                var settings1 = reader.ReadStructFields <SettingsStructFields>($"Section {i}");
                var settings2 = reader.ReadObjectFields <SettingsObjectFields>($"Section {i}");
                var settings3 = reader.ReadStructProperties <SettingsStructProperties>($"Section {i}");
                var settings4 = reader.ReadObjectProperties <SettingsObjectProperties>($"Section {i}");

                for (var n = 0; n < fields1.Length; n++)
                {
                    var original = fields1[n].GetValue(settings[i]);
                    var value1   = fields1[n].GetValue(settings1);
                    var value2   = fields2[n].GetValue(settings2);
                    var value3   = fields3[n].GetValue(settings3, null);
                    var value4   = fields4[n].GetValue(settings4, null);
                    if (original is DateTime dt && !Equals(original, value1))
                    {
                        switch (reader.Properties.Culture.ThreeLetterISOLanguageName)
                        {
                        case "dzo":
                            return;

                        default:
                            throw new NotImplementedException();
                        }
                    }
                    Assert.AreEqual(original, value1);
                    Assert.AreEqual(original, value2);
                    Assert.AreEqual(original, value3);
                    Assert.AreEqual(original, value4);
                }
            }
        }
예제 #4
0
        public void IniReaderWriterTest()
        {
            var temp = Path.GetTempFileName();

            Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: TestFile {temp}");
            foreach (var culture in allCultures)
            {
                Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: Test {culture}");

                if (!(culture.Calendar is GregorianCalendar))
                {
                    Console.WriteLine($"- Skipping calendar {culture.Calendar}");
                    continue;
                }

                var settings   = new SettingsStructFields[10];
                var properties = IniProperties.Default;
                properties.Culture = culture;
                var writer = new IniWriter(temp, properties);

                {
                    var setting = SettingsStructFields.Random(null);
                    settings[0] = setting;
                    writer.WriteFields($"Section 0", setting);
                }
                for (var i = 1; i < settings.Length; i++)
                {
                    var setting = SettingsStructFields.Random(culture);
                    settings[i] = setting;
                    writer.WriteFields($"Section {i}", setting);
                }
                writer.Save(temp);

                TestReader((IniReader)writer.ToReader(), settings);
                TestReader(IniReader.FromFile(temp, properties), settings);
            }
        }