예제 #1
0
        static void Main(string[] args)
        {
            List <Symbol> symbols = new List <Symbol>();

            Console.WriteLine("Введите текст, который нужно зашифровать");
            string Text = Console.ReadLine();//"Это текст который я придумал для себя лично";

            // Обработка исключения связанного с неккоректным вводом
            if (Text.Length < 2)
            {
                Console.WriteLine("Вы ввели слишком короткий текст");
                Console.WriteLine("Вместо него будет введено слово 'Тортик'\nПотому что тортик это клево :)");
                Text = "Тортик";
            }
            // Кодируем текст методом Шеннона Фано (код подключен из проекта прошлой лабораторной)
            symbols = TextWorker.Fragmentation(Text);
            Sort.SortListDesc(symbols);
            MethodShenonnaFano.Algoritm(symbols);
            OutputRezultInConsole.OutputRezult(symbols);

            // Кодируем исходный текст и фасуем его по сообщениям определенной длины
            List <string> messages = new List <string>();

            messages = CodingHemming.PreparingMessage(symbols, Text);

            Console.WriteLine("Нажмите клавишу для продолжения");
            Console.ReadKey(true);
            Console.Clear();

            //Эмуляция отправки сообщения с одной ошибкой
            CodingHemming.SendingMessageEmulation(messages);

            // Повторный расчет контрольных бит
            CodingHemming.CalculationControlBits(messages);
            // Превращаем полученное сообщение обратно в текст
            string Message = CodingHemming.DeleteControlBits(messages);

            Decoder.DecoderMethShenonnaFano(symbols, Message);

            Console.ReadKey(true);
        }