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