![]() |
try / except, problem....
Liste der Anhänge anzeigen (Anzahl: 1)
guten morgen alle zusammen
ich habe folgendes problem: ich habe keine ahnung wie man einen fehler abfangen kann mithilfe der funktionen try/except. kann mir da vielleicht mal jemand behilflich sein und mir das in den code einpflanzen? hier mein code und die fehlermeldung (im anhang) welche dabei entsteht:
Delphi-Quellcode:
besten dank schon im vorraus
procedure THauptformular.sbtnKonvertierenClick(Sender: TObject);
var hexarray : array[0..7] of String; ihexzaehler : integer; begin //Schreiben der Arraydaten in ein Textfile Assignfile(Tfile,'C:\Dokumente und Einstellungen\mmfembr\Desktop\test.txt'); Rewrite(Tfile); try ihexzaehler := StrtoInt('X' + edit1.Text); except on EConvertError do showmessage('Bitte korrekten Hexwert angeben!'); end; For y := 0 to 7 do begin ihexzaehler := ihexzaehler + $1; Writeln(Tfile, inttohex(ihexzaehler,4) + ':' + hexarray[y]); end; CloseFile(Tfile); end; end. mmfembr |
Re: try / except, problem....
Äh, warum hast du den Screenshot erst noch in ein Word-Dokument verpackt? Und was ist das Problem?
|
Re: try / except, problem....
(a)
Delphi-Quellcode:
sollte doch sicherlich
ihexzaehler := StrtoInt('X' + edit1.Text);
Delphi-Quellcode:
heißen (//EDIT: da kommt immer eine Exception)
ihexzaehler := StrtoInt('$' + edit1.Text);
(b)
Delphi-Quellcode:
geht besser mit
ihexzaehler := ihexzaehler + $1;
Delphi-Quellcode:
(c) Hexarray wird doch gar nicht beschrieben, aber in WriteLn () gelesen
Inc (ihexzaehler);
(d) hast Du unter Tools-> Debugger-Optionen...->SprachExceptions die Option "Bei Delphi-Exceptions" abgeschaltet :?: |
Re: try / except, problem....
ich bekomme wenn ich das ganze ausführe einen fehler wenn ich in das edit feld einen anderen buchstaben, welcher nicht dem hexadezimalen format entspricht, einfüge. die exception welche die software ausgibt weisst darauf hin, dass ich einen ungültigen hexwert genommen habe. anschliessend habe ich versucht mir eine fehlerabfang methode zu konstruieren (try / except) welche jedoch nicht funktioniert, warum weiss ich auch nicht, daher meine frage ob mir jemand diese richtig einbauen kann.
gruss mmfembr ps. der hexarray wird schon beschrieben nur weiter oben.... |
Re: try / except, problem....
Die Exception wird ausgelöst und, solange Du den Code in der IDE ausführst, von der IDE abgefangen und von Debugger ausgegeben.
Führst Du diesen Code nun als Kompilat aus (exe Datei) wird Dein Fehler richtig ausgegeben. Den selben Effekt kannst Du erreichen, wenn Du in der IDE die Delphi Exceptions abschaltest (wie Kroko1999 unter Punkt d bereits erwähnt hat) |
Re: try / except, problem....
ach so, jetzt hatte ich aber eine lange leitung!
besten dank für eure antwort! gruss mmfembr :dancer: |
Re: try / except, problem....
Guten Morgen.
Mit deinem Code machst du es besser so:
Delphi-Quellcode:
Oder noch besser:
procedure THauptformular.sbtnKonvertierenClick(Sender: TObject);
var hexArray: Array [0..7] of String; iHexZaehler: Integer; // ... begin // ... // Schreiben der Arraydaten in ein Textfile AssignFile(Tfile, 'C:\Dokumente und Einstellungen\mmfembr\Desktop\test.txt'); Rewrite(Tfile); try iHexZaehler := StrtoInt('X' + Edit1.Text); for y := 0 to 7 do begin iHexZaehler := iHexZaehler + $1; Writeln(Tfile, inttohex(ihexzaehler,4) + ':' + hexarray[y]); end; except on EConvertError do ShowMessage('Bitte korrekten Hexwert angeben!'); end; CloseFile(Tfile); end;
Delphi-Quellcode:
Grüße vom marabu
begin
// Schreiben der Arraydaten in ein Textfile AssignFile(Tfile, 'C:\Dokumente und Einstellungen\mmfembr\Desktop\test.txt'); Rewrite(Tfile); if TryStrToInt('X' + Edit1.Text, iHexZaehler) then begin for y := 0 to 7 do begin iHexZaehler := iHexZaehler + $1; Writeln(Tfile, inttohex(ihexzaehler,4) + ':' + hexarray[y]); end end else ShowMessage('Bitte korrekten Hexwert angeben!'); CloseFile(Tfile); end; |
Re: try / except, problem....
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz