/// <summary> /// Программа принимает на входе 2 пути до файлов. /// Анализирует в первом файле кол-во вхождений каждой буквы (регистрозависимо). Например А, б, Б, Г и т.д. /// Анализирует во втором файле кол-во вхождений парных букв (не регистрозависимо). Например АА, Оо, еЕ, тт и т.д. /// По окончанию работы - выводит данную статистику на экран. /// </summary> /// <param name="args">Первый параметр - путь до первого файла. /// Второй параметр - путь до второго файла.</param> static void Main(string[] args) { AlphabetLetter alphabetSingleLetter = new AlphabetLetter("абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"); AlphabetLetter alphabetDoubleLetter = new AlphabetLetter("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"); IReadOnlyStream inputStream1 = GetInputStream(args[0]); IReadOnlyStream inputStream2 = GetInputStream(args[1]); //IList<LetterStats> singleLetterStats = FillSingleLetterStats(inputStream1, alphabetSingleLetter); PrintStatisticSingle(alphabetSingleLetter); //IList<LetterStats> doubleLetterStats = FillDoubleLetterStats(inputStream2, alphabetDoubleLetter); PrintStatisticDouble(alphabetDoubleLetter); Console.WriteLine("Убираем гласные."); RemoveCharStatsByType(alphabetSingleLetter, CharType.Vowel); PrintStatisticSingle(alphabetSingleLetter); Console.WriteLine("Убираем согласные."); RemoveCharStatsByType(alphabetDoubleLetter, CharType.Consonants); PrintStatisticDouble(alphabetDoubleLetter); inputStream1.Close(); inputStream2.Close(); // TODO : Необжодимо дождаться нажатия клавиши, прежде чем завершать выполнение программы. Console.Read(); }
/// <summary> /// Метод для закрытия потока чтения /// </summary> /// <param name="readOnlyStream">Поток</param> private static void CloseInputStream(IReadOnlyStream readOnlyStream) { readOnlyStream.Close(); }