Entwickler-Ecke
Sonstiges (Delphi) - laufzeitfehler bei einem einfachen entschlüsslungsalgo...
g1o2k4 - Sa 26.08.06 01:04
Titel: laufzeitfehler bei einem einfachen entschlüsslungsalgo...
nabend
hab ich nen fehler gemacht oder woran liegts , dass ich immer nen fehler bekomm ?
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: 26: 27: 28: 29: 30: 31:
| procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Text := ''; end;
procedure TForm1.Button1Click(Sender: TObject); var s:string; i:integer; begin s:=Memo1.Text; for i:=1 to length(s) do begin s[i]:=char(strtoint(Edit1.text) Xor Ord(s[i])); end; Memo1.text := s; end;
procedure TForm1.Button2Click(Sender: TObject); var i:integer; s:string; x:integer; begin s := Memo1.text; for i:=0 to 255 do begin s[i]:=char(i Xor ord(s[i])); if s='test' then exit; end; Memo1.text := s; end; |
was ist der befehl dafür aus einer schleife rauszugehen und diese als erledigt zu betrachten ?
mfg g1o
Martok - Sa 26.08.06 01:38
Du müsstest schon verraten, welcher Fehler wo auftritt. Laufzeitfehler(und das nur im Titel) ist da sicherlich wenig hilfreich.
Der gesuchte Befehl heißt break; Hätte dir die Delphi-Hilfe verraten können, einfach nach 'exit' suchen und dann bei 'Siehe auch'.
Falls das jetzt etwas Oberlehrerhaft klang, so wars nicht gemeint ;)
HTH, Martok
g1o2k4 - Sa 26.08.06 08:56
also als fehler kommt:
"Im Projekt ....exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 004028F5 in Modul ....exe. Lesen von Adresse 00C9FFFC."
ich hab den code allerdings noch etwas modifiziert:
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: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var s:string; i:integer; begin s:=Memo1.Text; for i:=1 to length(s) do begin s[i]:=char(strtoint(Edit1.text) Xor Ord(s[i])); end; Memo1.text := s; end;
procedure TForm1.Button2Click(Sender: TObject); var i,l,x:integer; s:string; t:string; begin s := Memo1.text; for i:=0 to 255 do begin for l:=0 to length(s) do begin s[l]:=char(i Xor ord(s[l])); end; t := s; for l:=0 to length(s) do begin s[l]:=char(i Xor Ord(s[l])); end; if t='test' then break; end; Memo1.text := t; end; |
Keldorn - Sa 26.08.06 09:07
Delphi-Quelltext
1: 2: 3:
| for l:=0 to length(s) do ... for l:=0 to length(s) do |
Strings beginnen ab 1 zu zählen, nicht ab 0.
Mfg Frank
mkinzler - Sa 26.08.06 09:11
Delphi-Quelltext
1:
| for l:=0 to length(s)-1 do |
| Zitat: |
| Strings beginnen ab 1 zu zählen, nicht ab 0. |
Und gehen daher bis Länge -1
Keldorn - Sa 26.08.06 11:50
Du verwechselst da was.
g1o2k4 - Sa 26.08.06 17:52
jo stimmt. es ist wie keldorn es sagt. hab alles ausprobiert und schrittweise kompiliert und es hängt wirklich daran, dass strings bei 1 zu zählen beginnen.
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: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| procedure TForm1.Button1Click(Sender: TObject); var s,t:string; i:integer; begin s:=Memo1.Text; t :=s[1];
for i:=1 to length(s) do begin s[i]:=char(strtoint(Edit1.text) Xor Ord(s[i])); end; Memo1.text := s; end;
procedure TForm1.Button2Click(Sender: TObject); var i,l,x:integer; s:string; t:string; begin for i:=0 to 255 do begin s := Memo1.text; label1.caption := inttostr(i); for l:=1 to length(s) do s[l]:=char(i Xor ord(s[l]));
if s='test' then break; end; Memo1.text := s; end; |
danke für die hilfe ! g1o
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!