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


Anmelden zum Antworten