Entwickler-Ecke

Sonstiges (Delphi) - cäsar entschüsselung


mlhk - Mi 06.05.09 15:00
Titel: cäsar entschüsselung
hey,
könntet ihr euch mal diesen quelltext anschauen, ich finde den fehler einfach nicht, das ist eine cäsar entschlüsselung mit combobox, also um einen text zu endschlüssel wen das weiß um wie jeder buchstabe verschoben wurde

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function entschluesselung(text:string;zeichen,b:integer):string ;
var i,a : integer;
var ergtext : string;
begin
for i := 1 to zeichen do
begin
a:= ord(text[i]);
a:=a-b-1;
ergtext:=ergText+chr(a);
end;
text:='';
entschluesselung:= ergtext;
end;

procedure TForm2.E_entClick(Sender: TObject);
var text,funktionsergebnis:string;
var zeichen,b : integer;
begin
b:=ComboBoxEx1.ItemIndex;
text:=ausgabe.text;
zeichen:=length(text);
Lzeichen.Caption:= inttostr (zeichen);
funktionsergebnis:= entschluesselung(text,b,zeichen);
eingabe.text:=funktionsergebnis;
end;

schon mal danke im voraus

mfg
max

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Open Source Projekte verschoben am Mi 06.05.2009 um 15:30


k-weddige - Mi 06.05.09 15:52

Bei dem Code liegt einiges im Argen...
  1. Schau dir mal mod an.
  2. Die Länge des Textes als Parameter zu übergeben ist nur eine Fehlerquelle. Bestimm die in der Funktion!
  3. text:=''; ist überflüssig
  4. Anstatt ergtext kannst du auch gleich entschluesselung (oder result) benutzen.


Delete - Mi 06.05.09 15:54

Außerdem sind die Parameter b und zeichen wohl vertauscht.


Mitmischer 1703 - Do 07.05.09 18:14

Bitte formatiere deinen Quelltext (Leerzeichen) und Co.. :wink:

Das macht den Code um einiges verständlicher, vor allem, da du sofort die Anzahl der begins und ends im Blick hast :)

So in etwa sieht das dann aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function Entschluesselung(text:string; zeichen,b:integer):string ;
var i,a : integer;
    ergtext : string;
begin
  for i := 1 to zeichen do
  begin
   a:= ord(text[i]);
   a:=a-b-1;
   ergtext:=ergText+chr(a);
  end;
  //text:='';
  result:= ergtext;
end;

procedure TForm2.E_entClick(Sender: TObject);
var text,funktionsergebnis:string;
    zeichen,b : integer;
begin
  b:=ComboBoxEx1.ItemIndex;
  text:=ausgabe.text;
  zeichen:=length(text);
  Lzeichen.Caption:= inttostr (zeichen);
  funktionsergebnis:= entschluesselung(text,b,zeichen);
  eingabe.text:=funktionsergebnis;
end;


Jakob_Ullmann - Do 07.05.09 20:10

Naja, ein Anfang. Zumindest die Einrückung ist korrekt. Für weiteres, was die Lesbarkeit deutlich erhöht (Gewohnheitssache, aber die meisten sind wohl daran gewöhnt): http://www.delphi-treff.de/delphi-styleguide/

So erstmal fällt es mir relativ schwer, bestimmte Abschnitte wiederzuerkennen.