Пример #1
0
        public void DoWork()
        {
            string input = richTextBox1.Text;

            if (input.CompareTo("") == 0)
            {
                MessageBox.Show("Вы не ввели текст!");
                return;
            }
            HuffmanTree huffmanTree = new HuffmanTree();

            // Строим дерево Хаффмана по весам слов
            huffmanTree.Build(input);

            // Кодируем
            BitArray encoded = (BitArray)huffmanTree.Encode(input);
            richTextBox2.Clear();
            // Выводим результат кодирования            
            foreach (bool bit in encoded)
            {
                //richTextBox2.Text += ((bit ? 1 : 0) + "");
            }
            richTextBox2.Text = huffmanTree.str;
            // Декодируем
            string decoded = huffmanTree.Decode(encoded);
            richTextBox3.Clear();
            richTextBox3.Text = decoded;
        }
Пример #2
0
        public void DoWork()
        {
            var startDate = new DateTime();

            string input = richTextBox1.Text;

            if (input.CompareTo("") == 0)
            {
                MessageBox.Show("Вы не ввели текст!");
                return;
            }
            HuffmanTree huffmanTree = new HuffmanTree();

            // Строим дерево Хаффмана по весам слов
            huffmanTree.Build(input);

            // Кодируем
            BitArray encoded = (BitArray)huffmanTree.Encode(input);
            richTextBox2.Clear();
            // Выводим результат кодирования            
            foreach (bool bit in encoded)
            {
                //richTextBox2.Text += ((bit ? 1 : 0) + "");
            }
            richTextBox2.Text = huffmanTree.str;
            // Декодируем
            string decoded = huffmanTree.Decode(encoded);
            richTextBox3.Clear();
            richTextBox3.Text = decoded;

            
            var finishDate = new DateTime();

            // Выведем результаты
            richTextBox4.Text = "Время работы = " + (finishDate - startDate).TotalMilliseconds + " миллисекунд";
            richTextBox4.Text += "\nИсходный размер: " + richTextBox1.Text.Length + " символов";
            richTextBox4.Text += "\nСжатый размер: " + richTextBox2.Text.Length + " символов";
            richTextBox4.Text += "\nКПД: " + 100 * richTextBox2.Text.Length / richTextBox1.Text.Length + "%";
        }