예제 #1
0
        /// <summary>
        /// Метод построчно обрабатывает пользовательский текст и если он строка не соответсвует шаблону делаем
        /// ++countNotMatch, и сохраняем номера строк с неправильным форматом. По окончанию обработки, если countNotMatch>0
        /// генерируем наверх FormatException с количеством неправильных строк.
        /// </summary>
        /// <returns>если countNotMatch>0 генерируем наверх FormatException с количеством неправильных строк.
        /// Если нет то возвращаем ""</returns>
        public string CountBadLines()
        {
            if (Pathfile != null && !File.Exists(Pathfile))
            {
                throw new FileNotFoundException("Файл не существует либо указан неверный путь");
            }
            int           countNotMatch = 0;
            int           countLines    = 0;
            StringBuilder sb            = new StringBuilder();
            Regex         regx          = new Regex(Pattern);

            string[] kb = UserText.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < kb.Length; i++)
            {
                if (!regx.IsMatch(kb[i].ToString()))
                {
                    ++countNotMatch;
                    sb.AppendLine("неправильный формат в строке №" + (1 + countLines));
                }
                ++countLines;
            }
            if (countNotMatch > 0)
            {
                FormatException exF = new FormatException(countNotMatch + " строк имели неправильный формат. Вводите правильный формат везде");
                return(sb.ToString());

                throw exF;
            }

            return(sb.ToString());
        }
        private List <List <string> > GetTextChunks()
        {
            var chunks       = new List <List <string> >();
            var currentChunk = new List <string>();

            chunks.Add(currentChunk);

            foreach (var line in UserText.Split(new[] { Environment.NewLine }, StringSplitOptions.None))
            {
                if (string.IsNullOrWhiteSpace(line))
                {
                    // Currently not worried about multiple consecutive blank lines causing extra spacing
                    currentChunk = new List <string>();
                    chunks.Add(currentChunk);
                }
                else
                {
                    currentChunk.Add(line);
                }
            }

            return(chunks);
        }