unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function chiffre(text: string; n: integer):string;
var i, ordinal, ordinaln:integer;
begin
text:=UpperCase(text);
for i:=0 to length(text) do begin
ordinal:=ORD(text[i]);
ordinaln:=ordinal+n;
if(ordinal>=65) AND (ordinal<=90) then begin
text[i]:=chr(ordinaln);
if(ordinaln>90) then
text[i]:=chr(ordinaln-26)
else if (ordinaln < 65) then
text[i]:=chr(ordinaln+26);
end;
end;
result:=text;
end;
function trimNumber(n: integer):integer;
begin
if( n > 25) then
n:= n mod 26;
result:=n;
end;
function isValidNumber(n: integer):boolean;
begin
if (n mod 26) = 0 then
result:=false
else
result:=true;
end;
procedure abortChiffre;
begin
showmessage('Wolltest du nicht Chiffrieren?');
abort;
end;
{
function trimSpecialChars(s:string):string;
var s1:string;
i:integer;
begin
//der scheiss wird nicht genutzert....
s1:='';
for i:=1 to length(s) do
if not (s[i] in [' ', '-', ' '])
then s1:=s1+s[i];
result:=s1;
end;
}
function removeSpecialChars(s: string): string;
var s1: string;
i,c: integer;
begin
for i:=0 to length(s) do begin
c:=ORD(s[i]);
if ((c>=65) AND (c<=90)) then
s1:=s1+chr(c);
end;
result:=s1;
end;
procedure preChiffre(text: string; n: integer);
begin
n:=trimNumber(n);
if(n<0) then
form1.edit1.Text:=inttostr(n*-1)
else
form1.edit1.Text:=inttostr(n);
if isValidNumber(n)=false then
abortChiffre;
if(form1.CheckBox1.Checked) then
text:=removeSpecialChars(text);
form1.memo1.text:=chiffre(text, n);
end;
procedure TForm1.Button1Click(Sender: TObject);
var text:string;
n:integer;
begin
text:=memo1.text;
n:=strtoint(edit1.text);
preChiffre(text, n);
end;
procedure TForm1.Button2Click(Sender: TObject);
var text:string;
n:integer;
begin
text:=memo1.text;
n:=strtoint(edit1.text);
preChiffre(text, n*-1);
end;
end.