Fortschrittsanzeige - wie ausrechnen???
-
Hallo,
mich plagt derzeit das Problem, wie ich eine Fortschrittsanzeige berechnen kann. Konkret geht es darum, dass ich eine (für jeden Programmaufruf) variable Liste mit Dateien habe und diese von A nach B kopieren will.
Eine Fortschrittsanzeige hat immer 100% als Maximum. Wenn ich nu aber 728 Dateien hab, wie setze ich sowas in Relation zu den %?Für ein paar Denkanstösse wäre ich euch ziemlich dankbar...
Gruss
Holgie
-
erstmal die Größe aller Dateien zusammenrechnen.
-
dann kommst darauf an ob du alle dateien = 100% oder die summer der größe der dateien(was finde ich sinvoller ist) als 100% nimmst. und dann einfacher 3 Satz
-
Größe aller Dateien ------------------- = 1% 100 Bis jetzt kopierte Größe ------------------------ = x% 1%
MfG SideWinder
-
Einmal zuviel Käse erzählt.
MfG SideWinder
-
So z.B.
CProgressCtrl* prog = static_cast<CProgressCtrl*> (GetDlgItem(IDC_PROGRESS1)); prog->SetRange32(0,1000); __int64 max = 234242346565434543; __int64 cur = 102132445443534543; prog->SetPos(static_cast<int> ((static_cast<float> (cur) / max) * 1000));
max berechnest du vorher und cur ändert sich dann zu max hin.
100% == 1000 muss nicht sein - man hat aber feinere Schritte wenn man PBS_SMOOTH benutzt und die ProgressBar breiter als 100 Pixel ist./E: Ups, dachte bin im MFC-Forum. Naja - das wichtige kann man auch so rauslesen.
-
Jo, so sollte das funktionieren. Werd ich doch gleich mal testen.
Danke euch!
Gruss
Holgie