Caesar Chiffre entschlüsseln nur wie?(delphi)

Neue Frage »

Auf diesen Beitrag antworten »
power Caesar Chiffre entschlüsseln nur wie?(delphi)

hallo erstma liebes Forum ...
also ich habe folgendes problem wir haben zur zeit ver-/entschlüsselungsprogramme in Delphi und naja skytala haben wir schon is mir immernoch teilweise unverständlich..naja wie dem auch sei wir haben jetzt cäsar chiffre und haben dabei schon soweit alles gemacht nur sollen wir jetzt zu hause allein die entschlüsselung machen..was ich aber nicht hinkriege habs schon versucht aber mir wird da sofort ein fehler angezeit


hier der quelltext soweit erstma:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Button1: TButton;
MainMenu1: TMainMenu;
Schlieen1: TMenuItem;
Edit4: TEdit;
Button2: TButton;
procedure eingabe;
procedure eingabe1;
procedure verschluesseln;
procedure ausgabe;
procedure ausgabe1;
procedure entschluesseln;
procedure Schlieen1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
klartext,codestr,geheimtext :string;
codechr,zeichenchr :char;
codeint,zeichenint :integer;
implementation

{$R *.dfm}



procedure Tform1.eingabe;
begin
klartext:=edit1.text; //eingegebener text
codestr:=edit2.text; //eingabe des codebuchstaben (ist ein string)
codechr:=codestr[1]; //vom code wird immer nur das erste zeichen genommen
end;
procedure Tform1.eingabe1;
begin
geheimtext:=edit3.text;
codestr:=edit2.text;
codestr[1]:=codechr;
end;
procedure Tform1.ausgabe;
begin
edit3.Text:=geheimtext; //ausgabe des geheimtextes
edit4.Text:=inttostr(codeint);
end;
procedure Tform1.ausgabe1;
begin
edit1.text:=klartext;
end;
procedure Tform1.verschluesseln;
var i :integer;
begin
codechr:=upcase(codechr); //ich wandle alle buchstabe in Großbuchstaben um
for i:=1 to length(klartext)do //wichtig...length best. die länge eines strings und somit werden alle zeichen des klartext in Gorßbuchtaben umgewandelt

klartext:=upcase(klartext);
geheimtext:=klartext;
codeint:=ord(codechr)-65; //codeint->zahlenwert des codebuchstaben

for i:=1 to length(geheimtext) do
if klartext in ['A'..'Z'] then //ich überprüfe ob mein kalrtext auch wirklich aus zeichen besteht
begin
zeichenchr:=geheimtext; //aktuelles zeichen
zeichenint:=ord(zeichenchr); //zeichen in zahl umgewandelt
zeichenint:=zeichenint+codeint; //verschluesseltes zeichen
if zeichenint>90 then zeichenint:=zeichenint-26; //alphabet zuende
zeichenchr:=chr(zeichenint); //zeichen bestimmen
geheimtext:=zeichenchr; //verschlüsselter text
end;
end;

procedure Tform1.entschluesseln; // ab hier weis ich nicht weiter das ist ein versuch aber es wird mr immer wieder ein fehler angezeigt
var i :integer;
begin
lowercase(codechr):=codechr;
for i:=1 to length(geheimtext)do

geheimtext:=lowercase(geheimtext);
klartext:=geheimtext;
codeint:=ord(lowercase)+65;

for i:=1 to length(klartext) do
if geheimtext in ['A'..'Z'] then
begin
geheimtext:=zeichenchr
ord(zeichenchr):=zeichenint
zeichenint-codeintzeichenint
if zeichenint>90 then zeichenint:=zeichenint+26;
chr(zeichenint):=zeichenchr
zeichenchr:=geheimtext;
end;
end;


procedure TForm1.Schlieen1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
eingabe;
verschluesseln;
ausgabe;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
eingabe1;
entschluesseln;
ausgabe1;
end;

end.

wie ihr seht habe ich mich bei der entschlüsselungsporzedur schon selbst ohne erfolge probiert
nun gut ich hoffe ihr könnt mir helfen..ich schreibe am di einen test bei dem wir ein halbfertiges porgram bekommen das wir vervollständigen sollen ich hoffe hr könnt mir helfen..zu verstehen wo mein fehler liegt

danke im vorraus
mfg Power
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »