Entwickler-Ecke
Internet / Netzwerk - Floating point division by zero
crazywulf - Sa 29.04.06 15:10
Titel: Floating point division by zero
moin,
ich habe probleme mit diesem error
'Floating point division by zero'
ich benutze die komponente IdFTP um auf einen server zu connecten und manchmal schon beim connecten kommt dieser error..
Was bedeutet er?
warum kommt er?
und wie kann ich das verhindern?
Gruß crAZywuLf :D
Marc. - Sa 29.04.06 15:14
du versuchst anscheinend irgendeinen wert durch null zu teilen ;)
abfangen könntest du den fehler entweder mit einer exception:
Delphi-Quelltext
1: 2: 3: 4: 5:
| try a := b / 0; except on EZeroDivide do ... |
oder du kontrollierst vorher, mit einer if-anweißung, ob der wert gleich null ist ;)
crazywulf - Sa 29.04.06 15:27
moin,
Ich finde den Fehler nicht.
ich teile nur an einer stelle und da habe ich das schon eingebaut aber der fehler kommt immernoch. hier mal der qc von OnWork und von dem connect button
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: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| procedure TForm1.workwork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer); var S: String; TotalTime,STime: TDateTime; H, M, Sec, MS: Word; DLTime: Double; a,b : integer; begin try statusbar2.Panels[0].Text := 'DL Speed: '+Format('%.2f KB/s', [(AWorkCount - FBytes) / (GetTickCount - FTime)]); except on EZeroDivide do list1.Items.Add('¬error by zero'); end; FTime := GetTickCount; FBytes := AWorkCount; ProgressBar1.Position := AWorkCount; ProgressBar1.Update; StatusBar1.Panels[0].Text := 'Size: '+inttostr(AWorkCount)+' / '+inttostr(Progressbar1.Max)+' Bytes'; Application.ProcessMessages; end;
procedure TForm1.Connect1Click(Sender: TObject); var sl: TStringList; zeilennr: integer; begin ftp.Connect();
if ftp.Connected = True then begin list1.Items.Add('¬connected to server'); end; ftp.Get('dl.dat', 'cs_dl.dat', true); button3.Enabled := true; button5.Enabled := true;
sl:=TStringList.Create;
try sl.LoadFromFile('cs_dl.dat'); for zeilennr:=0 to sl.Count-1 do begin combo1.Items.Add(sl[zeilennr]); end; finally sl.free; end; end; |
Gruß crAzywuLf :D
Marc. - Sa 29.04.06 16:04
(GetTickCount - FTime) scheint gleich null zu geben ;) überprüf das mal
crazywulf - Sa 29.04.06 16:15
NoTVerYEvilPzYchO hat folgendes geschrieben: |
| (GetTickCount - FTime) scheint gleich null zu geben ;) überprüf das mal |
Ich hab es überorüft und du hast recht es ergibt sehr oft null...
was jetzt?
EDIT : /////
ich hab es mit einer if frage geregelt danke ;)
du hast mir sehr geholfen EINFACH KLASSE :D
Gruß crAzywuLf :D
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!