Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi ATBaSCHVerschlüsselung (https://www.delphipraxis.net/172588-atbaschverschluesselung.html)

Mulgatree 12. Jan 2013 14:28

ATBaSCHVerschlüsselung
 
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:
Delphi-Quellcode:
    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!

DeddyH 12. Jan 2013 14:34

AW: ATBaSCHVerschlüsselung
 
Delphi-Quellcode:
function TForm1.getkey(c: Char): integer;
begin
  result := ord(c) - 65;
end;

Mulgatree 12. Jan 2013 14:42

AW: ATBaSCHVerschlüsselung
 
Danke DeddyH, das wars! :)

DeddyH 12. Jan 2013 14:56

AW: ATBaSCHVerschlüsselung
 
Obwohl, zum besseren Verständnis könnte man es auch so schreiben:
Delphi-Quellcode:
function TForm1.getkey(c: Char): integer;
begin
  Result := Ord(c) - Ord('A');
end;


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