ResText += Resh[ind_x2+1][ind_y2];
}
else
if (ind_x2 == 9)
{
ResText += Resh[ind_x1+1][ind_y1];
ResText += Resh[0][ind_y2];
}
else
{
ResText += Resh[ind_x1+1][ind_y1];
ResText += Resh[ind_x2+1][ind_y2];
}
}
// Якщо літери знаходяться в різних рядках в різних стовпцях
if ((ind_x1 != ind_x2) && (ind_y1 != ind_y2))
{
ResText += Resh[ind_x1][ind_y2];
ResText += Resh[ind_x2][ind_y1];
}
k = k + 2;
Form1->ProgressBar1->StepBy(2);
}
Form1->Memo2->Lines->Add(ResText);
Form1->Label3->Caption = Form1->Memo2->Text.Length();
Form1->Button3->Enabled = true;
MessageBox(NULL, "Текст успішно зашифровано!", "Вітаю!", MB_OK);
}
//* Функція розшифрування тексту *//
void Decrypt()
{
ResText = "";
Form1->ProgressBar1->Position = 0;
Form1->ProgressBar1->Min = 0;
Form1->ProgressBar1->Max = MyText.Length();
// індекси літер в стовпцях
int ind_x1 = 0;
int ind_y1 = 0;
int ind_x2 = 0;
int ind_y2 = 0;
int k = 1;
while (k<MyText.Length()-2)
{
for (int i=0; i<10; i++)
for (int j=0; j<16; j++)
{
if (MyText[k] == Resh[i][j])
{
ind_x1 = i;
ind_y1 = j;
}
if (MyText[k+1] == Resh[i][j])
{
ind_x2 = i;
ind_y2 = j;
}
}
// Якщо літери знаходяться в одному рядку
if (ind_x1 == ind_x2)
{
if (ind_y1 == 0)
{
ResText += Resh[ind_x1][15];
ResText += Resh[ind_x2][ind_y2-1];
}
else
if (ind_y2 == 0)
{
ResText += Resh[ind_x1][ind_y1-1];
ResText += Resh[ind_x2][15];
}
else
{
ResText += Resh[ind_x1][ind_y1-1];
ResText += Resh[ind_x2][ind_y2-1];
}
}
// Якщо літери знаходяться в одному стовпці
if (ind_y1 == ind_y2)
{
if (ind_x1 == 0)
{
ResText += Resh[9][ind_y1];
ResText += Resh[ind_x2-1][ind_y2];
}
else
if (ind_x2 == 0)
{
ResText += Resh[ind_x1-1][ind_y1];
ResText += Resh[9][ind_y2];
}
else
{
ResText += Resh[ind_x1-1][ind_y1];
ResText += Resh[ind_x2-1][ind_y2];
}
}
// Якщо літери знаходяться в різних рядках в різних стовпцях
if ((ind_x1 != ind_x2) && (ind_y1 != ind_y2))
{
ResText += Resh[ind_x1][ind_y2];
ResText += Resh[ind_x2][ind_y1];
}
k = k + 2;
Form1->ProgressBar1->StepBy(2);
}
Form1->Memo2->Lines->Add(ResText);
Form1->Label3->Caption = Form1->Memo2->Text.Length();
Form1->Button3->Enabled = true;
MessageBox(NULL, "Текст успішно розшифровано!", "Вітаю!", MB_OK);
}
//* Функция сохранения зашифрованного текста *//
void FileSave()
{
if (Form1->RadioButton1->Checked == true)
{
Form1->Memo2->Lines->SaveToFile(Dir + "\\encrypted.txt");
MessageBox(NULL, "Результат збережено у файл encrypted.txt в папці з програмою", "Вітаю!", MB_OK);
Form1->Button3->Enabled = false;
Form1->ProgressBar1->Position = 0;
}
if (Form1->RadioButton2->Checked == true)
{
Form1->Memo2->Lines->SaveToFile(Dir + "\\decrypted.txt");
MessageBox(NULL, "Вітаю!", "Результат збережено у файл decrypted.txt в папке с програмою", MB_OK);
Form1->Button3->Enabled = false;
Form1->ProgressBar1->Position = 0;
}
}
//* Кнопка "Відкрити файл" *//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
//*Кнопка "Старт" *//
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (Form1->Memo1->Text.Length() == 0)
MessageBox(NULL, "Сталася помилка!", "Немає тексту для шифрування!", MB_OK);
else
{
MyText = Form1->Memo1->Text;
Key = Form1->Edit1->Text;
if (!CheckKey())
MessageBox(NULL, "Сталася помилка!" , "Ключове слово має повторювані символи!", MB_OK);
else
{
Form1->Memo2->Clear();
if (Form1->RadioButton1->Checked == true)
{
CreateR();
EditText();
DWORD id = 0;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.