Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Caesarverschlüsselung und Entschlüsselung (https://www.delphipraxis.net/143998-caesarverschluesselung-und-entschluesselung.html)

RimRocker 27. Nov 2009 15:55


Caesarverschlüsselung und Entschlüsselung
 
Hallo.

Ich hab ein Programm geschrieben, welches eigentlich eine Caesarverschlüsselung durchführen soll und einen verschlüsselten Text auch wieder entschlüsseln kann (wenn die Verschiebungsanzahl des Alphabetes bekannt ist).

Hier das Formular:
http://img504.imageshack.us/img504/7672/delphiprob.png
(Edit1 ist ganz oben, dann SpinEdit1 dann Edit2 dann Edit3)
("Verschlüsseln" ist Button1, "Entschlüsseln" Button2, "Alle Felder leeren" Button3 und "Schließen" BitButton1)


Und das ist der Quelltext:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
SpinEdit1.Value:=1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var I, L, C1, C2: Integer; H:char;
begin
Edit2.Text:='';
Edit3.Text:='';
L:=Length(Edit1.Text);

for I:= 0 to L do
Begin
H:=UpCase(Edit1.Text[I]);
C1:=ord(H);
C2:=C1+SpinEdit1.Value;
if C2>90 then C2:=C2-90+64;
H:=chr(C2);
Edit2.Text:=Edit2.Text+H;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var I, L, C1, C2: Integer; H:char;
begin
Edit3.Text:='';
L:=Length(Edit2.Text);

for I:=0 to L do
begin
H:=UpCase(Edit2.Text[I]);
C1:=ord(H);
C2:=C1-SpinEdit1.Value;
if C2<65 then C2:=C2+26;
H:=chr(C2);
Edit3.Text:=Edit3.Text+H;
end;
end;
end.
So, nun zum Problem.
Ich kann das Programm starten und auch alles auswählen bzw. eingeben.
Drücke ich aber auf "Verschlüsseln" kommt die Fehlermeldung "Der Index war außerhalb des Arraybereichs".

Ich kann aber kein Fehler im Quellcode entdecken =/
Ihr?

lg

PS: Version ist Delphi 2005

DeddyH 27. Nov 2009 16:09

Re: Caesarverschlüsselung und Entschlüsselung
 
Zitat:

Delphi-Quellcode:
L:=Length(Edit2.Text);

for I:=0 to L do

Strings beginnen bei 1, nicht bei 0.

[edit] *oops*, Willkommen in der DP :dp: [/edit]

RimRocker 27. Nov 2009 16:21

Re: Caesarverschlüsselung und Entschlüsselung
 
Stimmt :wall:

Danke für die Lösung und fürs Willkommen :)

Lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz