Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriffsverletzung im Verschlüsselungstool (https://www.delphipraxis.net/132696-zugriffsverletzung-im-verschluesselungstool.html)

Haff 17. Apr 2009 19:16


Zugriffsverletzung im Verschlüsselungstool
 
Also ich versuche mit meinem Tool Buchstaben und Zeichen zu anderen umzuformen es kommt aber immer sofort zum Abbruch.
Dazu habe ich eine Eingabe und Ausgabe Zeile und einen Button. Das Programm soll später noch ein wenig verändert werden und ein paar Funktionen dazu kommen nur soll ersteinmal der Kern funktionieren.

Sobald ich eine eingabe mache egal wie lange und dann den Button drücke kommt die Nachricht Zugriffsverletzung.....

Im richtigen Programm stehen natürlich andere Zeichen und keine 0 aber wo wäre die Verschlüsselung wenn ich die hier richtig reinschreiben würde. Ich brauch auch keine Erklärung dazu das die Vershclüsselung extrem simpel ist das ist gewollt und reicht vorerst.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:string;
    i,n:integer;
begin
a:=Edit1.Text;
n:=length(a);
if radiobutton1.Checked then begin
for i := 1 to n do
  if a[i]='a' then b[i]:='0'
else begin
  if a[i]='b'then b[i]:='0'
else begin
  if a[i]='c'then b[i]:='0'
else begin
  if a[i]='d'then b[i]:='0'
else begin
  if a[i]='e'then b[i]:='0'
else begin
  if a[i]='f'then b[i]:='0'
else begin
  if a[i]='g'then b[i]:='0'
else begin
  if a[i]='h'then b[i]:='0'
else begin
  if a[i]='i'then b[i]:='0'
else begin
  if a[i]='j'then b[i]:='0'
else begin
  if a[i]='k'then b[i]:='0'
else begin
  if a[i]='l'then b[i]:='0'
else begin
  if a[i]='m'then b[i]:='0'
else begin
  if a[i]='n'then b[i]:=''
else begin
  if a[i]='o'then b[i]:='0'
else begin
  if a[i]='p'then b[i]:='0'
else begin
  if a[i]='q'then b[i]:='0'
else begin
  if a[i]='r'then b[i]:='0'
else begin
  if a[i]='s'then b[i]:='0'
else begin
  if a[i]='t'then b[i]:='0'
else begin
  if a[i]='u'then b[i]:='0'
else begin
  if a[i]='v'then b[i]:='0'
else begin
  if a[i]='w'then b[i]:='0'
else begin
  if a[i]='x'then b[i]:='0'
else begin
  if a[i]='y'then b[i]:='0'
else begin
  if a[i]='z'then b[i]:='0'
else begin
  if a[i]='0' then b[i]:='0'
else begin
  if a[i]='1' then b[i]:='0'
else begin
  if a[i]='2' then b[i]:='0'
else begin
  if a[i]='3' then b[i]:='0'
else begin
  if a[i]='4' then b[i]:='0'
else begin
  if a[i]='5' then b[i]:='0'
else begin
  if a[i]='6' then b[i]:='0'
else begin
  if a[i]='7' then b[i]:=''
else begin
  if a[i]='8' then b[i]:='0'
else begin
  if a[i]='9' then b[i]:='0'
else begin
  if a[i]='!' then b[i]:='0'
else begin
  if a[i]='"' then b[i]:='0'
else begin
  if a[i]='§' then b[i]:='0'
else begin
  if a[i]='$' then b[i]:='0'
else begin
  if a[i]='%' then b[i]:='0'
else begin
  if a[i]='&' then b[i]:='0'
else begin
  if a[i]='/' then b[i]:='0'
else begin
  if a[i]='(' then b[i]:='0'
else begin
  if a[i]=')' then b[i]:='0'
else begin
  if a[i]='=' then b[i]:='0'
else begin
  if a[i]='?' then b[i]:='0'
else begin
  if a[i]='+' then b[i]:='0'
else begin
  if a[i]='*' then b[i]:='0'
else begin
  if a[i]='-' then b[i]:='0'
else begin
  if a[i]='\' then b[i]:='0'
else begin
  if a[i]='ö'then b[i]:='0'
else begin
  if a[i]='ä'then b[i]:='0'
else begin
  if a[i]='ü'then b[i]:='0'
end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;
end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;
end;end;end;end;end;end;end;end;end;end;end;end;end;end
else
showmessage('Bitte Akzeptieren sie die AGB');
edit2.Text:=b;
end;
end.

mkinzler 17. Apr 2009 19:30

Re: Zugriffsverletzung im Verschlüsselungstool
 
b hat ja Länge 0. Entweder am Anfang
Delphi-Quellcode:
SetLength( b, n);
oder
Delphi-Quellcode:
b := b + '0';

Haff 17. Apr 2009 21:22

Re: Zugriffsverletzung im Verschlüsselungstool
 
Dankeschön für die Hilfe!

Jetzt funktioniert das Tool einwandfrei.

Klaus01 17. Apr 2009 21:38

Re: Zugriffsverletzung im Verschlüsselungstool
 
Guten Abend,

auch wenn Dein Problem schon gelöst wurde.

Übersichtlicher würde Dein Code, wenn Du case verwenden würdest.

Delphi-Quellcode:
for i:=1 to length(s) do
  begin
    case s[i] of
       'a' : b[i]:='0';
       'b' : b[i]:='0';
    end;
 end;
Grüße
Klaus

mkinzler 17. Apr 2009 21:41

Re: Zugriffsverletzung im Verschlüsselungstool
 
Oder mit einer Tabelle arbeiten

Delphi-Quellcode:
b[i]:=Tab[Ord(a[i])];


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