Hallöle ..
Ich weiß das..
8 Bit = 1 Byte
1024 byte = 1KB
1024KB = 1Mb
sind, aber nun habe ich heute im Netz gelesen, das man mit Delphi nicht mit diesen zahlen rechnen soll, sondern 1Kb = 1000Byte nehmen soll, warum auch immer?!
nun zu dem eigentlichen problem.
Delphi-Quellcode:
// Result = byte
function GetFileSize(FileName: String): Integer;
var
SR: TSearchRec;
begin
if FindFirst(Filename, faAnyFile, SR) = 0 then
begin
Result := SR.Size;
end
else
begin
Result := -1;
end;
FindClose(SR);
end;
// Complete Bar enthällt nicht die tatsächliche Grösse aller in der SFV File befindlichen dateien
Function Status(Wert: Integer; FileSize: Integer): String;
Var
I: Integer;
Begin
If Wert = sfvfile.count then
Result := '[AA] - ( ' + IntToStr(sfvfile.count) + 'F ' + IntToStr(FileSize div 1024 div 1024) + 'M - COMPLETE ) - [AA]'
else
Begin
Result := '[';
for i := 0 to (((Wert * sfvfile.count) div 100) div 10)-1 do
Result := Result + '#';
for i := (((Wert * sfvfile.count) div 100) div 10)+1 to 10 do
Result := Result + '-';
Result := Result + '] - ' + IntToStr((Wert * sfvfile.count) div 100) + '% Complete - [AA]';
end;
OldStatus := Result;
End;
// und so zähle ich die filesize hoch ...
var
FSize : Integer;
dir : String; // enthällt den Pfad zur Datei
filen : String; // der Dateinamen
begin
...
FSize := FSize + GetFileSize(dir + filen);
end;
Als beispiel habe ich einen ordner mit Gesammtgrösse der Dateien von 4,6GB genommen. Als Ergebniss in dem Statusbalken bekomme ich aber 52MB raus.
Wo liegt das Problem bzw was hab ich da falsch gemacht?