Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.28 KB | None | 0 0
  1.   simple,simple2: array of Char;
  2.  
  3. ///---------------------------------------------------------------------------
  4. function get_num(inn :char; arr: array of Char):integer;
  5. var
  6. i :integer;
  7. begin
  8. for i:=0 to length(arr)-1 do
  9.       if (arr[i]=inn) then
  10.       result:=i;
  11. end;
  12.  
  13. ///---------------------------------------------------------------------------
  14. procedure change(crypt:boolean);
  15. var
  16. i:integer;
  17. temp: Char;
  18. begin
  19.    if crypt then   //шифровка
  20.    begin
  21.      for i:=0 to length(simple)-1 do
  22.        begin
  23.          simple2[strtoint(form1.edit2.text[i+1])-1]:=simple[i];
  24.        end;
  25.    end
  26.     else
  27.     begin
  28.       for i:=0 to length(simple)-1 do
  29.        begin
  30.          simple2[i]:=simple[strtoint(form1.edit2.text[i+1])-1];
  31.        end;
  32.     end;
  33. end;
  34.  
  35. function getres():string;
  36. var
  37. i:integer;
  38. res:string;
  39. begin
  40.     for i:=0 to length(simple2)-1 do
  41.        begin
  42.         res:=res+simple2[i];
  43.        end;
  44.   result:=res;
  45. end;
  46.  
  47. function add(str:string; key:integer):string; //дополнить до
  48. var
  49. i,len:integer;
  50. res: string;
  51. begin
  52.   if (length(str) mod key =0)then
  53.     Result:=str
  54.     else
  55.     begin
  56.       len:=key-(length(str) mod key);
  57.        for i:=1 to len do
  58.           begin
  59.            //res:=res+'Z';
  60.            res:=res+eng[RandomRange(0, 24)];
  61.           end;
  62.       result:=str+res;
  63.     end;
  64. end;
  65.  
  66. function csimple(str:string; lkey:integer; crypt:boolean):string;
  67. var
  68. i,j: integer;
  69. res: string;
  70. begin
  71. j:=0;
  72.          for i:=1 to length(str) do
  73.           begin
  74.               simple[j]:=str[i];
  75.               inc(j);
  76.                 if j>=lkey then
  77.                begin
  78.                j:=0;
  79.                change(crypt);
  80.                res:=res+getres();
  81.               end;
  82.           end;
  83.     result:=res;
  84.  end;
  85.  
  86. ///---------------------------------------------------------------------------
  87.  
  88. procedure TForm1.Button3Click(Sender: TObject);//зашифровать
  89. begin
  90. setlength(simple,spinedit2.value);
  91. setlength(simple2,spinedit2.value);
  92. memo5.Text:=AnsiUpperCase(memo5.Text);
  93. memo5.Text:=add(memo5.Text,spinedit2.value);
  94. memo4.Text:=csimple(memo5.text,spinedit2.value,true);
  95. end;
  96.  
  97. procedure TForm1.Button4Click(Sender: TObject);//расшифровать
  98. begin
  99. memo6.Text:=csimple(memo4.text,spinedit2.value,false);
  100. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement