Автор: Kindman
Выложите на форму две кнопки TButton и область просмотра TRichEdit.
Обработчик OnClick для кнопки, которая будет вызывать криптовку:
procedure TForm1.Button1Click(Sender: TObject);
var S: string;
i: Cardinal;
begin
if not (RichEdit1.Text = '') then
begin
S := RichEdit1.Text;
for i:=1 to Length(S) do
if (Ord(S[i]) <= 253) then S[i]:=Chr(Ord(S[i])+2);
RichEdit1.Text:=S
end
else
Application.MessageBox('Поле не заполнено', 'Пустое поле', mb_Ok);
end;
Обработчик OnClick для кнопки декриптовки:
procedure TForm1.Button2Click(Sender: TObject);
var S: string;
i: Cardinal;
begin
S := RichEdit1.Text;
for i:=1 to Length(S) do
if (Ord(S[i]) <= 253) then S[i] := Chr(Ord(S[i])-2);
RichEdit1.Text := S;
end;
Просмотров: 4617
2. Molotov Artem
Из-за "if (Ord(S) <= 253) then" криптование кривое получается...
ИМХО если "if (Ord(S) <= 253) then S:=Chr(Ord(S)+2);" то символ с кодом 253 криптуется в символ с кодом 255... А в декриптовании получится так, что символ который стал символом с 255 кодом ASCII просто напросто не перекодируеться в символ с кодом 253 из-за "if (Ord(S) <= 253) then" ... он просто напросто не пройдёт условие "Ord(S) <= 253".... Я советую писать так: Обработчик OnClick для кнопки, которая будет вызывать криптовку: Код procedure TForm1.Button1Click(Sender: TObject); var S: string; i: Cardinal; begin if not (RichEdit1.Text = '') then begin S := RichEdit1.Text; for i:=1 to Length(S) do S[i]:=Chr(Ord(S[i])+1); RichEdit1.Text:=S end else Application.MessageBox('Поле не заполнено', 'Пустое поле', mb_Ok); end; Обработчик OnClick для кнопки декриптовки: Код procedure TForm1.Button2Click(Sender: TObject); var S: string; i: Cardinal; begin S := RichEdit1.Text; for i:=1 to Length(S) do S [i]:= Chr(Ord(S[i])-1); RichEdit1.Text := S; end; При таком коде возможна малейшая оплошность... |
1. NekitoS
Если 2 раза нажать на кнопку криптовки, а вотом два раза нажать на кнопку дериптовки, то получится не совсем исходный текст
|
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.