Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlerbehandlung verbessern (https://www.delphipraxis.net/106394-fehlerbehandlung-verbessern.html)

WIng2005 10. Jan 2008 07:45


Fehlerbehandlung verbessern
 
Hallo Gemeinde,

seht ihr eine Möglichkeit, dies hier:

Delphi-Quellcode:

try
x1:=strtofloat(s1);
except
x1:=0;
end;
.
.
.

try
xn:=strtofloat(sn);
except
xn:=0;
end;

xges:=x1+x2....+xn
in irgendeiner Form zu verbessern? Sollte zum einen weniger Code und zum Anderen eleganter werden....

Danke für eure Anregungen

MFG
Steffen

semo 10. Jan 2008 07:52

Re: Fehlerbehandlung verbessern
 
hallo!
probier es einmal mit StrToFloatDef(),
dabei kannst du einen standardwert angeben der im fehlerfall genommen wird.

mkinzler 10. Jan 2008 07:52

Re: Fehlerbehandlung verbessern
 
Delphi-Quellcode:
if not TryStrTofloat(s1, x1) then x1 := 0;

RavenIV 10. Jan 2008 07:53

Re: Fehlerbehandlung verbessern
 
Du kannst es so machen:
Delphi-Quellcode:
if not TryStrToFloat(s1, x1) then
begin
  x1 := 0;
end;
/edit
Zu langsam.
Wobei meine Version aber nach StyleGuide ist.

WIng2005 10. Jan 2008 07:59

Re: Fehlerbehandlung verbessern
 
Habt mal vielen Dank.... schaue mir beides mal an.

MFG
Steffen

sirius 10. Jan 2008 08:15

Re: Fehlerbehandlung verbessern
 
Naja, und dass du für die x-e ein Array einsetzen kannst, ist dir auch bekannt.

WIng2005 10. Jan 2008 08:18

Re: Fehlerbehandlung verbessern
 
klar, ist mal wieder nur ein Beispiel. In meinem Code kommen an Stelle
der x-e ne Menge Informationen zusammen. Ging eher ums Prinzip.

MFG
Steffen

himitsu 10. Jan 2008 11:42

Re: Fehlerbehandlung verbessern
 
wozu ein Array ... er kann auch gleich zusammenrechnen ;)

Delphi-Quellcode:
xges := 0;
for i := 1 to n do
  xges := xges + StrToFloatDef(s[i]{oder wie auch immer}, 0);
oder
Delphi-Quellcode:
xges := 0;
for i := 1 to n do
  if TryStrToFloat(s[i], x) then xges := xges + x;


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