Advertisement
Skygen

V Algorithm

Nov 10th, 2014
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.08 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Edit1: TEdit;
  12.     Button1: TButton;
  13.     Button2: TButton;
  14.     Button3: TButton;
  15.     Button4: TButton;
  16.     Label1: TLabel;
  17.     Label2: TLabel;
  18.     Label3: TLabel;
  19.     Memo1: TMemo;
  20.     Memo2: TMemo;
  21.     SaveDialog1: TSaveDialog;
  22.     procedure Button1Click(Sender: TObject);
  23.     procedure Button2Click(Sender: TObject);
  24.     procedure Button3Click(Sender: TObject);
  25.     procedure Button4Click(Sender: TObject);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.   end;
  31.  
  32. var
  33.   Form1: TForm1;
  34.  
  35. implementation
  36.  
  37. function Viz_Crypt(s,key:string):string;
  38. const
  39. SizeA = 33; //Размер алфавита
  40. RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  41. var i, P, t :integer;
  42. temp:string;
  43. begin
  44. s:=AnsiLowerCase(s);
  45. key:=AnsiLowerCase(key);
  46. t:=0;
  47. for i:=1 to length(s) do
  48. begin
  49. inc(t);
  50. if t>length(key) then t:=1;
  51. P:=pos(s[i],RusA)+pos(key[t],RusA);
  52. if P>SizeA then P:=P-SizeA;
  53. Result:=Result+RusA[P];
  54. end;
  55. end;
  56.  
  57.  
  58. function Viz_DeCrypt(s,key:string):string;
  59. const
  60. SizeA = 33;
  61. RusA = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  62. var i, P, t :integer;
  63. temp:string;
  64. begin
  65. s:=AnsiLowerCase(s);
  66. key:=AnsiLowerCase(key);
  67. t:=0;
  68. for i:=1 to length(s) do
  69. begin
  70. inc(t);
  71. if t>length(key) then t:=1;
  72. P:=pos(s[i],RusA)-pos(key[t],RusA);  
  73. if P<=0 then P:=P+SizeA;
  74. Result:=Result+RusA[P];
  75. end;
  76. end;
  77.  
  78. {$R *.dfm}
  79.  
  80. procedure TForm1.Button1Click(Sender: TObject);
  81. begin
  82. memo2.Text:=Viz_Crypt(memo1.Text,edit1.Text);
  83. end;
  84.  
  85. procedure TForm1.Button2Click(Sender: TObject);
  86. begin
  87. memo2.Text:=Viz_DeCrypt(memo1.Text,edit1.Text);
  88. end;
  89.  
  90. procedure TForm1.Button3Click(Sender: TObject);
  91. begin
  92. memo1.Lines.Clear;
  93. memo2.Lines.Clear;
  94. edit1.Text:='';
  95. end;
  96.  
  97. procedure TForm1.Button4Click(Sender: TObject);
  98. begin
  99. if(SaveDialog1.Execute=true) then
  100. memo2.Lines.SaveToFile(SaveDialog1.FileName+'.txt');
  101. end;
  102.  
  103. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement