Einzelnen Beitrag anzeigen

snapman
(Gast)

n/a Beiträge
 
#1

Prozentrechnung geht nicht bei grossen Zahlen!?

  Alt 31. Dez 2006, 00:30
Hallo,

bin grad dabei ein Verschlüsselungsprog. zu coden und wollte dazu eine Progressbar bauen mit Prozentanzeige.
Der Witz ist: Die Progressbar selber geht wunderbar, allerdings kann ich die Prozente dazu nicht berechnen.

Habe 2 Zahlen: Sourcefile und Destinationfile (in Bytes)

Hier der Code:

Delphi-Quellcode:
var
  fsource,fdest:longint;
  status:real;

begin

......

Form1.progressbar1.Min:=0;
Form1.progressbar1.Step:=1;
Form1.progressbar1.Max:=filesize(source);

repeat
fdest:=filesize(dest) div 10;
fsource:=filesize(source) div 10;
status:=fdest *100 div fsource;

form1.progreslabel.caption:=floattostr(status);
Form1.progressbar1.Position:=filesize(dest);


.......

until Read<> Sizeof(Buffer);
Wenn die Dateien relativ klein sind, funktioniert beides gut, bei Dateien die ein paar hundert MB gross sind, geht die Progressbar wunderbar,
allerdings tritt bei der Ausgabe der Zahl im Progresslabel ein Phänomen auf:
er zählt hoch von 1-10, dann fängt er bei -10!!!! an und geht is +10 wieder hoch, dann springt er auf 20, dann wieder auf -10 usw... total verrückt

(PS: das div 10 habe ich extra eingebaut damit die zahlen kleiner bleiben scheint aber auch nicht zu helfen)

kann mir jemand sagen was da los ist?
  Mit Zitat antworten Zitat