AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

try / except, problem....

Ein Thema von mmfembr · begonnen am 17. Mär 2006 · letzter Beitrag vom 17. Mär 2006
Antwort Antwort
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#1

try / except, problem....

  Alt 17. Mär 2006, 07:59
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:
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.
besten dank schon im vorraus

mmfembr
Angehängte Dateien
Dateityp: doc fehler_559.doc (34,0 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: try / except, problem....

  Alt 17. Mär 2006, 08:04
Äh, warum hast du den Screenshot erst noch in ein Word-Dokument verpackt? Und was ist das Problem?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: try / except, problem....

  Alt 17. Mär 2006, 08:07
(a)ihexzaehler := StrtoInt('X' + edit1.Text); sollte doch sicherlich
ihexzaehler := StrtoInt('$' + edit1.Text); heißen (//EDIT: da kommt immer eine Exception)
(b)
ihexzaehler := ihexzaehler + $1; geht besser mit
Inc (ihexzaehler); (c) Hexarray wird doch gar nicht beschrieben, aber in WriteLn () gelesen
(d) hast Du unter Tools-> Debugger-Optionen...->SprachExceptions die Option "Bei Delphi-Exceptions" abgeschaltet
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#4

Re: try / except, problem....

  Alt 17. Mär 2006, 08:13
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....
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#5

Re: try / except, problem....

  Alt 17. Mär 2006, 08:21
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)
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#6

Re: try / except, problem....

  Alt 17. Mär 2006, 08:24
ach so, jetzt hatte ich aber eine lange leitung!

besten dank für eure antwort!

gruss mmfembr

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: try / except, problem....

  Alt 17. Mär 2006, 08:28
Guten Morgen.

Mit deinem Code machst du es besser so:

Delphi-Quellcode:
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;
Oder noch besser:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: try / except, problem....

  Alt 17. Mär 2006, 08:30
Zitat:
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
Eine andere Möglichkeit ist natürlich defensives Programmieren. D.h. in diesem Fall, dass am besten schon die fehlerhafte Eingabe abgefangen werden sollte und nicht erst beim Schreiben von irgendwelchen Daten.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 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