Autor Beitrag
Dron48
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 22.06.03 20:40 
ich muss dem Fehler der Umwandlung eines leeren Strings in Single irgendwie unterdrücken. so wie es unten mit try..except steht, geht irgendwie nicht. ich kann natürlich jedes feld auf = '' untersuchen, aber gibt es eine schnellere Möglichkeit?

ausblenden 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:
procedure TForm1.losnClick(Sender: TObject);
begin
     if p=true then begin
     if ges.text<>'' then begin
     erg:=(StrToFloat(EBE.text)/StrToFloat(ges.text)*100);
     label10.caption:=FloatToStr(erg);
     i:=7;
 try
     Satz[1]:=strToFloat(EN1.text);
     Satz[2]:=strToFloat(EN2.text);
     Satz[3]:=strToFloat(EN3.text);
     Satz[4]:=strToFloat(EN4.text);
     Satz[5]:=strToFloat(EN5.text);
     Satz[6]:=0;
 except
    Label10.caption:= 'fehlerhafter MaЯstab';
 end;
 repeat
    i:=i-1;
    if erg >= Satz[i] then resu.text:= floatToStr(i) else i:=1;

 until i=1 ;
   end
   end
end;


Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 22.06.03 21:10 
Dron48 hat folgendes geschrieben:
ich kann natürlich jedes feld auf = '' untersuchen, aber gibt es eine schnellere Möglichkeit?

Die Prüfung auf '' ist die schnellste. Jedes try/finally/except braucht Unmengen an Maschinenbefehlen.

Als alternative kannst du auch Val() benutzen und den Error-Parameter dann überprüfen.

_________________
Ist Zeit wirklich Geld?
Dron48 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 22.06.03 21:58 
tja, ich hab vergessen zu sagen, dass der try..except um die ganze prozedur auch nicht funktioniert.
ich sage das deshalb, da die jetzt gedacht habe, dass die untersuchungsschleife nicht mit leeren aray fehlerhaft sein koennte
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.06.03 07:59 
Die Lösung heißt val, da kannst du mit if den Fehlercode prüfen. Aber das wurde ja schon gepostet. Wo hast du jetzt noch ein Problem?