예제 #1
0
        static private string MakeText(Grid table, int rowCount, int columnCount)
        {
            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 2; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    TextBlock textBlock = TableHandler.Find(table, i, j);
                    stringBuilder.Append(textBlock.Text);
                }
            }
            return(stringBuilder.ToString());
        }
예제 #2
0
        private void EncryptButton_Click(object sender, RoutedEventArgs e)
        {
            if (OriginalTextBox.Text != "" && KeyTextBox.Text != "")
            {
                TableHandler.CleanTable(OriginalTable);
                TableHandler.CleanTable(EncryptedTable);
                keyWordLength      = KeyTextBox.Text.Length;
                OriginalTextLength = OriginalTextBox.Text.Length;
                columnCount        = keyWordLength;
                rowCount           = OriginalTextLength / keyWordLength;
                // если количество рядков целое, то нужно добавить еще один ряд пустой ряд. Чтобы все буквы влезли в таблицу
                if (rowCount % 1 == 0)
                {
                    rowCount++;
                }
                else // иначе округлить в большую сторону. Чтобы все буквы влезли в таблицу
                {
                    rowCount = Math.Ceiling(rowCount);
                }
                // Добавляем 2 рядка для секретного слова и индекса
                rowCount += 2;

                //  Добавить в таблицу колонки
                TableHandler.AddColumns(columnCount);
                // добавить в таблицу рядочки
                TableHandler.AddRows((int)rowCount);

                OriginalText = OriginalTextBox.Text;
                keyWord      = KeyTextBox.Text;

                TableHandler.FillKeyWord(keyWord, columnCount);
                TableHandler.FillText(OriginalText, (int)rowCount, columnCount);

                keyWordIndexes = new int[keyWordLength];
                for (int i = 0; i < keyWord.Length; i++)
                {
                    int number = keyWord[i];
                    keyWordIndexes[i] = number;
                }
                Array.Sort(keyWordIndexes);

                TableHandler.FillEncryptedTable(OriginalTable, keyWordIndexes, (int)rowCount);

                TextHandler.OutEncryptedText(EncryptedTable, EncryptedTextBox, (int)rowCount, columnCount);
            }
        }