Example #1
0
        internal static void Start()
        {
            var s = new ScanDirectory(); //интанцируем обьект класса ScanDirectory

            s.Scan(s.PathDir);           //Сканирует директорию/папку, обрабатывает файлы и т.д.:)

            /*do
             * {
             *  var time = 10000;
             *  var count = time/1000;
             *  while (count!=0)
             *  {
             *      count--;
             *      Thread.Sleep(1000);
             *      Console.WriteLine("Loading  " + count);
             *  }
             * }
             * while (Console.ReadKey().Key != ConsoleKey.Escape);//Для выхода из программы нужно нажать Esc*/
        }
Example #2
0
        //Метод калькулятора расчет или  Calculation
        protected internal int Calculation(string _pattern, string _expression) //принимает паттерн регулярного выражение и выражение которое будем считать
        {
            var result = 0;                                                     //переменная result будет хранить в себе полученный результат

            //проходим по коллекции регулярного выражения которое получаем с помощью метода Matches из класса Regex
            foreach (Match c in Regex.Matches(_expression, _pattern))
            {
                //получаем первое значение/операнд, вытаскивая его по индексу из колекции регулярного выражения _pattern
                //созданное с помощью метода Matches класса Regex
                //которым является первым значением математического выражения _expression
                var value1 = int.Parse(c.Groups[1].Value);
                //получаем первое значение/операнд, вытаскивая его по индексу из колекции регулярного выражения _pattern
                //созданное с помощью метода Matches класса Regex
                //которым является вторым значением математического выражения _expression
                var value2 = int.Parse(c.Groups[3].Value);
                //получаем первое значение/операнд, вытаскивая его по индексу из колекции регулярного выражения _pattern
                //созданное с помощью метода Matches класса Regex
                //которым является третим значением математического выражения _expression
                var action = c.Groups[2].Value;
                //проверяем какое действие нужно выполнить
                switch (action)
                {
                case "*":                                                                          //если попадаем на знак/операнд умножение
                {
                    var f = new ScanDirectory();                                                   //создаем и инстанцируем объект класса ScanDirectory() в данном случае с конструктором по умолчанию
                    Console.WriteLine("{0}" + "=" + "{1}", c.Value, value1 * value2);              //выводим для наглядности выражение с результатом в консоль
                    result = value1 * value2;                                                      //считаем выражение
                    File.AppendAllText(f.PathResult, "\n" + value1 + "*" + value2 + "=" + result); //Проводим запись выражения с результатом в указанный файл
                    break;                                                                         //выходим из ветвления
                }

                //если находим другие знаки/операнды делаем по аналогии как и со знаком умножение.
                case "/":
                {
                    var f = new ScanDirectory();
                    Console.WriteLine("{0}" + "=" + " {1:N2}", c.Value, value1 / value2);
                    result = value1 / value2;
                    File.AppendAllText(f.PathResult, "\n" + value1 + "/" + value2 + "=" + result);
                    break;
                }

                case "+":
                {
                    var f = new ScanDirectory();
                    Console.WriteLine("{0} " + "=" + " {1}", c.Value, value1 + value2);
                    result = value1 + value2;
                    File.AppendAllText(f.PathResult, "\n" + value1 + "+" + value2 + "=" + result);
                    break;
                }

                case "-":
                {
                    var f = new ScanDirectory();
                    Console.WriteLine("{0} " + "=" + " {1}", c.Value, value1 - value2);
                    result = value1 - value2;
                    File.AppendAllText(f.PathResult, "\n" + value1 + "-" + value2 + "=" + result);
                    break;
                }
                }
            }
            return(result);//возвращаем посчитанный результат
        }