...

Листинг 12.13.

Объявление типов и класса нашей формы

type

//исходный алфавит русского языка

TRusSrcAlphabet = array [0..65] of Char;

//сопоставление букв алфавита открытого текста и зашифрованного

TRusDstAlphabet = array [Char] of Char;

TfmCryptography = class(TForm)

mmDecryptMessage: TMemo;

mmEncryptMessage: TMemo;

lbDecryptMessage: TLabel;

lbEncryptMessage: TLabel;

btnEncryptMessage: TButton;

btnDecpyptMessage: TButton;

edKey: TEdit;

lbKey: TLabel;

procedure btnEncryptMessageClick(Sender: TObject);

procedure btnDecpyptMessageClick(Sender: TObject);

private

{ Private declarations }

RusDstAlphabet: TRusDstAlphabet;

function GetKey: Integer;

procedure RecalcAlphabet(nKey: Integer);

function EncryptDecryptString(strMsg: String;

nKey: Integer): String;

public

{ Public declarations }

end;

var

RusSrcAlphabet: TRusSrcAlphabet =

\'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\' +

\'абвгдеёжзийклмнопрстуфхцчшщъыьэюя\

fmCryptography: TfmCryptography;

Далее приведем описание работы методов, решающих определенные подзадачи, которые возникают в процессе решения основной проблемы. Итак, начнем рассмотрение с функции получения введенного пользователем ключа. Ее работа заключается в следующем. Сначала текстовое представление ключа преобразуется в численное представление. Далее проверяется, успешно ли прошло преобразование. Если все отлично, то возвращается полученное значение. В противном случае результатом функции будет -1, что свидетельствует о некорректном вводе пользователем ключа. Исходный код данной функции приведен в листинге 12.14.

Загрузка...