unit uMain;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TMainForm =
class(TForm)
Button1: TButton;
Edit1: TEdit;
ResultMemo: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure InitalizeEnglishGematriaArray;
function CalculateValue(Str:
String): Integer;
function GetGematriaValuefromChar(Chr: Char): Integer;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TEnglishGematria =
record
Buchstabe: Char;
Wert: Integer;
end;
var
MainForm: TMainForm;
EnglishGematriaArray :
Array[0..25]
of TEnglishGematria;
implementation
{$R *.dfm}
procedure TMainForm.Button1Click(Sender: TObject);
begin
CalculateValue(Edit1.Text);
end;
function TMainForm.CalculateValue(Str:
String): Integer;
var
Target:
String;
TargetLength: Integer;
i: Integer;
CharValue: Integer;
begin
ResultMemo.Clear;
CharValue := 0;
Result := 0;
Target := UpperCase(Str);
TargetLength := Length(Target);
for i := 1
to TargetLength
do
begin
CharValue := GetGematriaValuefromChar(Target[i]);
ResultMemo.Lines.Add('
' + Target[i] + '
' + IntToStr(CharValue));
Result := Result + CharValue;
end;
Result := Result;
ResultMemo.Lines.Add('
+----------+');
ResultMemo.Lines.Add('
' + IntToStr(Result));
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
InitalizeEnglishGematriaArray;
end;
function TMainForm.GetGematriaValuefromChar(Chr: Char): Integer;
var
i: Integer;
begin
if (Chr = #0)
OR (Chr = '
')
OR (Chr = '
')
then
begin
Result := 0;
end
else
begin
for i := 0
to 26
do
begin
if Chr = EnglishGematriaArray[i].Buchstabe
then
begin
Result := EnglishGematriaArray[i].Wert;
Exit;
end;
end;
end
end;
procedure TMainForm.InitalizeEnglishGematriaArray;
begin
EnglishGematriaArray[0].Buchstabe := '
A';
EnglishGematriaArray[0].Wert := 6;
EnglishGematriaArray[1].Buchstabe := '
B';
EnglishGematriaArray[1].Wert := 12;
EnglishGematriaArray[2].Buchstabe := '
C';
EnglishGematriaArray[2].Wert := 18;
EnglishGematriaArray[3].Buchstabe := '
D';
EnglishGematriaArray[3].Wert := 24;
EnglishGematriaArray[4].Buchstabe := '
E';
EnglishGematriaArray[4].Wert := 30;
EnglishGematriaArray[5].Buchstabe := '
F';
EnglishGematriaArray[5].Wert := 36;
EnglishGematriaArray[6].Buchstabe := '
G';
EnglishGematriaArray[6].Wert := 42;
EnglishGematriaArray[7].Buchstabe := '
H';
EnglishGematriaArray[7].Wert := 48;
EnglishGematriaArray[8].Buchstabe := '
I';
EnglishGematriaArray[8].Wert := 54;
EnglishGematriaArray[9].Buchstabe := '
J';
EnglishGematriaArray[9].Wert := 60;
EnglishGematriaArray[10].Buchstabe := '
K';
EnglishGematriaArray[10].Wert := 66;
EnglishGematriaArray[11].Buchstabe := '
L';
EnglishGematriaArray[11].Wert := 72;
EnglishGematriaArray[12].Buchstabe := '
M';
EnglishGematriaArray[12].Wert := 78;
EnglishGematriaArray[13].Buchstabe := '
N';
EnglishGematriaArray[13].Wert := 84;
EnglishGematriaArray[14].Buchstabe := '
O';
EnglishGematriaArray[14].Wert := 90;
EnglishGematriaArray[15].Buchstabe := '
P';
EnglishGematriaArray[15].Wert := 96;
EnglishGematriaArray[16].Buchstabe := '
Q';
EnglishGematriaArray[16].Wert := 102;
EnglishGematriaArray[17].Buchstabe := '
R';
EnglishGematriaArray[17].Wert := 108;
EnglishGematriaArray[18].Buchstabe := '
S';
EnglishGematriaArray[18].Wert := 114;
EnglishGematriaArray[19].Buchstabe := '
T';
EnglishGematriaArray[19].Wert := 120;
EnglishGematriaArray[20].Buchstabe := '
U';
EnglishGematriaArray[20].Wert := 126;
EnglishGematriaArray[21].Buchstabe := '
V';
EnglishGematriaArray[21].Wert := 134;
EnglishGematriaArray[22].Buchstabe := '
W';
EnglishGematriaArray[22].Wert := 138;
EnglishGematriaArray[23].Buchstabe := '
X';
EnglishGematriaArray[23].Wert := 144;
EnglishGematriaArray[24].Buchstabe := '
Y';
EnglishGematriaArray[24].Wert := 150;
EnglishGematriaArray[25].Buchstabe := '
Z';
EnglishGematriaArray[25].Wert := 156;
end;