/// <summary> /// Метод для добавления нового цвета в список /// </summary> /// <param name="color"></param> public void AddMyColor(MyColor color) { colorList.Add(color); }
static void Main(string[] args) { // Список цветов MyColorList colorList = new MyColorList(); // Регулярное выражение для нахождения чисел string regexPattern = @"[0-9]+"; try { using (StreamReader st = new StreamReader("colors.json")) { while (!st.EndOfStream) { string line = st.ReadLine(); if (line.Contains(":")) { string[] ls = line.Split(':'); string colorName = ls[0].Substring(ls[0].IndexOf('"') + 1, ls[0].LastIndexOf('"') - ls[0].IndexOf('"') - 1); byte[] colorValues = new byte[4]; // Применение регулярного выражения для нахождения всех цветов MatchCollection matches = Regex.Matches(ls[1], regexPattern); for (int i = 0; i < 4; i++) { byte.TryParse(matches[i].Value.ToString(), out colorValues[i]); } MyColor color = new MyColor(colorName, colorValues); Console.WriteLine(color); colorList.AddMyColor(color); } } } } catch (ColorException ex) { Console.WriteLine($"Ошибка при создании объекта MyColor: {ex.Message}"); } catch (IOException ex) { Console.WriteLine($"Ошибка при открытии файла: {ex.Message}"); } catch (UnauthorizedAccessException ex) { Console.WriteLine($"Ошибка доступа: {ex.Message}"); } catch (Exception ex) { Console.WriteLine($"Непредвиденная: {ex.Message}"); } // Открытие формы Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(colorList.GetARGBList())); }