Autor Beitrag
crazywulf
Hält's aus hier
Beiträge: 13

Win XP
BD S2006, PHP, HTML, MYSQL
BeitragVerfasst: Sa 29.04.06 15:10 
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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: 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:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
BD S2006, PHP, HTML, MYSQL
BeitragVerfasst: 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

ausblenden volle Höhe 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:
// OnWork
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;
  //Aktualisieren der Fortschrittsanzeige:
  ProgressBar1.Position := AWorkCount;
  ProgressBar1.Update;
  StatusBar1.Panels[0].Text := 'Size: '+inttostr(AWorkCount)+' / '+inttostr(Progressbar1.Max)+' Bytes';
  Application.ProcessMessages;
end;

// Connect Button
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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 29.04.06 16:04 
(GetTickCount - FTime) scheint gleich null zu geben ;) überprüf das mal
crazywulf Threadstarter
Hält's aus hier
Beiträge: 13

Win XP
BD S2006, PHP, HTML, MYSQL
BeitragVerfasst: Sa 29.04.06 16:15 
user profile iconNoTVerYEvilPzYchO 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