Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Entschlüsselung für Caesar (https://www.delphipraxis.net/91877-entschluesselung-fuer-caesar.html)

ölöp78 11. Mai 2007 09:29


Entschlüsselung für Caesar
 
Hier ist unser Verschlüsselungs Code uns fehlen aber Ansätze zur Entschlüsselung.

Delphi-Quellcode:
Procedure TForm1.Caesar(Wort : String; var caesartext : String);
var x:Char;
    i,y,z:Integer;
Begin
    i:=1;
    z:= length(Wort)+1;
         caesartext := '';
         repeat
         x:= Wort[i];
         y:= ORD(x)+1;
    caesartext:= caesartext+Chr(y);


         i:= I+1
         until I=z;
end;

marabu 11. Mai 2007 09:48

Re: Entschlüsselung für Caesar
 
Hallo,

ein paar Anmerkungen zu eurem (habt ihr einen Sammel-Account?) Code:

Man macht solchen Code nicht zur Methode einer Form. Auch würde ich eine Funktion vorziehen anstelle einer Prozedur - ich übergebe ein Wort und erhalte das verschlüsselte Wort als Ergebnis zurück. Da sich beim Verschlüsseln mit dem Caesar-Verfahren die Zahl der Zeichen nicht ändert, würde ich eine Zählscheife verwenden und die Länge des Ergebnisses von vornherein festlegen. Zeichenweises Anhängen ist nicht so schön, weil dann die alte Variable oft verworfen werden muss und eine neue an anderer Stelle bereitgestellt wird - eine mitunter sehr zeitraubende Aktion. Und statt der Erhöhung um eins nehme ich die Funktion Succ() - sie liefert den Nachfolger, nicht nur bei Zahlen, sondern auch bei Zeichen. Euer Code sieht dann viel überschaubarer aus:

Delphi-Quellcode:
function Encoded(wort: string): string;
var
  i: Integer;
begin
  SetLength(Result, Length(wort));
  for i := 1 to Length(wort) do
    Result[i] := Succ(wort[i]);
end;
Wenn ihr jetzt noch herausfindet wie das Gegenstück von Succ() heißt, dann wird es ziemlich einfach die Funktion Decoded() zu schreiben.

Grüße vom marabu

Flips 16. Mai 2007 21:54

Re: Entschlüsselung für Caesar
 
Gegenstück ist
Delphi-Quellcode:
function Pred ( const Ordinal Value ) : Ordinal type;
Ist zwar ein wenig spät, aber der Vollständigkeit halber :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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