Hallo!
Wir haben in _Informatik im Moment das Thema Verschlüsselung, speziell die ATBaSCH-Verschlüsselung.
Diese Verschlüsselung ist einfach, der eingegebene Buchstabe wird durch den ersetzt, der genausoweit weg ist wie auf der anderen seite vom Alphabet. Doof ausgedrückt, aber simpel:
ZYXWVUTSRQPONMLKJIHGFEDCBA
^
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Bis jetzt haben ich folgendes Zusammengebastelt:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
b_verschluesseln: TButton;
e_eingabe: TEdit;
b_entschluesseln: TButton;
e_ausgabe: TEdit;
b_loeschen: TButton;
b_close: TButton;
procedure b_closeClick(Sender: TObject);
procedure b_verschluesselnClick(Sender: TObject);
private
{ Private-Deklarationen }
function getkey(a:
string): integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.getkey(a:
string): integer;
begin
result:=(ord(StrToInt(a))) - 65;
end;
procedure TForm1.b_closeClick(Sender: TObject);
begin
close;
end;
procedure TForm1.b_verschluesselnClick(Sender: TObject);
var i, b: integer; s, f:
string;
begin
for i:=1
to length(e_eingabe.Text)
do
begin
f:=(e_eingabe.Text[i]);
b:=getkey(f);
s:=s + chr((90 - b));
end;
e_ausgabe.text:=s;
end;
end.
eigentlich eine sehr einfache programmierung, aber es hakt dann bei der Verschlüsselung. Wenn ich z.B. das Wort 'HALLO
'(eingegebene Buchstaben werden automatisch in Großbuchstaben umgewandelt) eingebe, kommt folgende Fehlermeldung: Im Projekt ATBaSCh.exe ist eine
Exception der Klasse EConvertError aufgetreten. Meldung: ''H' ist kein gültiger Integerwert'.
Das Problem wird dann in folgender Zeile markiert:
b:=getkey(f);
Deklariert man die Variabel f als Char und passt die function getkey an, kommt dieselbe Fehlermeldung!
Irgendwelche Ideen? Ich komm nicht weiter und wäre sehr dankbar!