/// <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); }