Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
20.06.2014
Размер:
3.58 Кб
Скачать
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, XPMan, ComCtrls, ExtCtrls, AppEvnts, ActnList, Clipbrd;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
XPManifest1: TXPManifest;
SpeedButton4: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2,Unit3;
var VizTabl: array [0..32,0..32] of byte;
cod,i,j,sym1,sym2,sym3,sym4:byte;
ish,keyword,shifr,deshifr,msg,KeyStr:string;
{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in['а'..'я',#8]) then key:=#0;
Clipboard.Clear;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if Edit1.Text='' then
begin
ShowMessage('Введите сообщение для шифрования');
exit;
end;
if Edit2.Text='' then
begin
ShowMessage('Введите ключевое слово');
exit;
end;
msg:=Edit1.Text;
KeyStr:=Edit2.Text;
cod:=1;
keyword:='';
shifr:='';
for i:=1 to length(msg) do
begin
keyword:=keyword+keystr[cod];
inc(Cod);
if cod>length(keystr) then cod:=1;
end;
for i:=1 to length(msg) do
begin
sym1:=ord(msg[i])-224;
sym2:=ord(keyword[i])-224;
shifr:=shifr+chr(viztabl[sym2,sym1]);
Edit3.Text:=shifr;
end;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
cod:=0;
for i:=0 to 31 do
begin
for j:=0 to 31 do
begin
VizTabl[j,i]:=cod+224;
inc(cod);
if cod=32 then cod:=0;
end;
inc(cod);
end;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if Edit3.Text='' then
begin
ShowMessage('Введите сообщение для дешифрования');
exit;
end;
if Edit2.Text='' then
begin
ShowMessage('Введите ключевое слово');
exit;
end;
deshifr:='';
shifr:=Edit3.Text;
keystr:=Edit2.Text;
for i:=1 to length(msg) do
begin
keyword:=keyword+keystr[cod];
inc(Cod);
if cod>length(keystr) then cod:=1;
end;
for i:=1 to length(msg) do
begin
sym4:=ord(keyword[i])-224;
for j:=0 to 31 do
if VizTabl[sym4,j]=Ord(shifr[i]) then sym3:=j;
deshifr:=deshifr+chr(viztabl[0,sym3]);
Edit4.Text:=deshifr;
end;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
Clipboard.Clear;
end;

end.
Соседние файлы в папке Вижинер
  • #
    20.06.2014298 б12Project1.dpr
  • #
    20.06.201411.93 Кб12Project1.res
  • #
    20.06.20147.89 Кб12Unit1.dcu
  • #
    20.06.201451 б12Unit1.ddp
  • #
    20.06.20145.88 Кб12Unit1.dfm
  • #
    20.06.20143.58 Кб13Unit1.pas
  • #
    20.06.20144.07 Кб12Unit2.dcu
  • #
    20.06.201451 б12Unit2.ddp
  • #
    20.06.2014744 б13Unit2.dfm
  • #
    20.06.2014811 б12Unit2.pas
  • #
    20.06.20144.6 Кб12Unit3.dcu