Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozent ausrechnen und Wert zuweisen (https://www.delphipraxis.net/12129-prozent-ausrechnen-und-wert-zuweisen.html)

sharkx 22. Nov 2003 11:25

Re: Prozent ausrechnen und Wert zuweisen
 
Huhu ..

Soweit so gut. funktioniert eigentlich auch, aber eines kommt mir spanisch vor.

Ich hab eine sfv file gecheckt die insgesammt einen Inhalt von 95 Files hatte. Nach jeder gecheckten bzw CRC Ok File erhöhe ich den Wert FileOK um jeweils 1. Dieser Wert ist dann für mich die Grundlage um die Prozentzahl auszurechnen. Und dies wie folgt ...


Delphi-Quellcode:
function Status(Wert: integer; FileSize: int64): 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;
end;


// Hier wird gecheckt ob File CRC OK ist
// Alten Statusdir löschen
// Neuen erzeugen
      if DFCalcCRC32(UpperCase(dir + filen)) = UpperCase(CRC) then
        begin
        WriteLn('OK');
        Inc(FileOK);

        FSize := FSize + GetFileSize(dir + filen);
        OldStatus := FindFirst(dir + '[*] - *% Complete - [**]', faDirectory, sr);
        if OldStatus = 0 then
          try
            RemoveDir(dir + sr.Name);
            repeat
              FindNext(sr);
              RemoveDir(dir + sr.Name);
            until
              FindNext(sr) <> 0;
          finally
            Findclose(sr);
            ForceDirectories(dir + Status(FileOK, FSize));
          end;
        end

Das Problem ist nun folgendes:
Wenn ich mir die Prozentschritte bei dieser großen SFV File anschaue, dann liegt der Pro File bei etwa 2% Sprüngen, was schon eigentlich nicht sein könnte ( 95 * 2 != 100 ). Aber wenn er dann an der letzten File ist, steht der Prozentbalken bei 85% ( wie der darauf kommt weiß ich bis heute nicht) und springt dann wenn die letzte File fertig ist auf den 100% Balken.

Ich hab auch die Proecdur schon neu geschrieben, da ich vieleicht dachte, ich hab nen fehler, finde den zwar nicht, aber wenn ich sie neu schreibe werd ich ihn sicher nicht 2 mal schreiben. Nix :-/


Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz