Problem Ladebalken ....



  • Hi Leute

    sorry wenn ich mit dem Tehma nerve aber ich bekomme einfach keinen Ladebalken hin .... Hab es soweit schon mal geschafft das ein Zeichen von links nach Rechts alle 2 sec oder so abläuft. Nur das Problem ist das dies ewig so weiter geht ..... also die Schleife hört irgendwie nicht auf. Und wie kann ich das anstellen das die Prozentanzeige links sich jeweilts alle 2sec um 20% erhöht ?
    bitte um ein paar Hilfestellungen und Tips was ich angehen muss ...

    Hier der Code:

    //main.cpp
    //Ladebalken
    
    //load.cpp
    
    #include <iostream>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    
    void clrscr()          // Windows - WinAPI 
    { 
      COORD coord; 
      DWORD written; 
      CONSOLE_SCREEN_BUFFER_INFO info; 
      coord.X = coord.Y = 0; 
      HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE); 
      GetConsoleScreenBufferInfo(std, &info); 
      FillConsoleOutputCharacter(std,' ',info.dwSize.X*info.dwSize.Y,coord,&written); 
      coord.X = coord.Y = 0; 
      SetConsoleCursorPosition(std, coord); 
    } 
    
    int main(){
    
    int  wert=0,wert_ende,i=0,hilf;
    
    do{
    
       clrscr();
    
       cout << "\nLadebalken " << endl;
    
       cout <<"\n\n\n\n0%> " << endl;
    
       for(i; i<wert/2;i++)
          {
          cout<<"%";
    
          Sleep(1000);
    
          }
    
     wert_ende=100-wert;
    
    for(i=0;i<wert_ende/2;i++)
    
       {
    
       Sleep(1000);
       cout<<" ";
    
        }
       cout << " " << endl;
    
    }while(wert>100);
    
       getch();
    
     return 0;
    
    }
    

    Ab den Schleifen läuft irgendwas schief .... nur komme ich nicht dahinter wie ich das anstellen muss .... 😑

    Hier noch die Fehlermeldung:
    **
    --------------------Configuration: ladebalken - Win32 Debug--------------------
    Compiling...
    main.cpp
    I:\Dokumente und Einstellungen\Leon Seichab\Desktop\ladebalken\main.cpp(41) : warning C4101: 'hilf' : unreferenced local variable

    main.obj - 0 error(s), 1 warning(s)
    **

    THX für alle antworten!

    cu



  • Lol, das ist doch keine Fehlermeldung. Du hast nur eine überflüssige Variable "hilf" im Code. Btw: Wie wärs wenn du mit Wert auch was anstellst in der Schleife?



  • Hi

    ja ich weiß .....da liegt auch mein Problem denn ich weiß nicht was
    ich mit dieser Variablen anfangen soll .... hatte ein Teil des Quellcodes vor langer Zeit mal irgendwo im Netz gefunden.
    Desswegen wollte ich mal hier im Forum fragen wie man da weiter machen sollte ..

    cu



  • Hi!

    Kann mir denn keiner helfen 😞 Einer muss doch wissen wie das noch hinzubekommen ist. Ich will ja keine Lösung von euch aber ein paar Tips was
    total falsch ist und anders sein müsste währ schon nett und würde mir helfen.
    Code Bsp währen auch nicht schlecht ..... 😉

    THX für alle antworten



  • boah ey, lösch doch einfach die variable hilf raus! Wo ist das fu problem?



  • Hi

    Ach ne ..... das ist mir auch schon aufgefallen das ich die auch einfach löschen kann nur dadurch funktioniert der Ladeblken immer noch nicht richtig.

    mfg



  • Dein Ladebalken ist zwar so wie er gerade ist ziemlich sinnlos, aber er könnte auch wenn er Sinn hätte nichts anzeigen. Du solltest statt Space auch was anderes anzeigen lassen, dann wirst Du auch was sehen:

    for(i=0;i<wert_ende/2;i++)
    {
        Sleep(1000);
        cout<<"#";
    }
        cout << " " << endl;
    

    so wird auf jeden Fall was angezeigt. Ob es das gewünschte ist weiss ich nicht



  • Hi

    ja doch danke das geht schon in die richtige Richtung ! 🙂
    Jetzt läuft der Balken von links nach rechts .... gibt es noch eine möglichkeit das die 0%> anzeige links sich auch immer erhöht ??

    dies könnte man doch irgendwie so anstellen das immer wenn z.b 4 oder 5 solcher Prozent Zeichen durch die Schleife ausgegeben wurden, der Bildschirm durch clrscr() gelöscht wird und ich dann jeweils 20%, 30% ausgeben lasse ....usw ...
    Ich weiß auch nicht ..... ich weiß nicht wie ich da rangehen soll 😕
    Ich bin für jede hilfe dankbar !

    cu



  • du solltest in etwa sowas machen:

    string balkenstatus;
    for(int i=0;i<20;++i){
        Sleep(1000);
        clrscr();
        balkenstatus+="#";
        cout<<"Ladebalken\n\n\n";
        cout<<"   "<<i*5<<"  "<<balkenstatus;
    }
    

    zwar absolut sinnlos so, aber es müsste funktionieren^^



  • Hi

    Danke für dieses Beispiel .... nur noch eine Frage 😉
    Warum soll das so sinnlos sein ? Vom Code Style oder was ?

    MFG



  • nö, es gibt aber kaum ne möglichkeit, das einzusetzen, ausser du willst ein programm aussehen lassen als ob es was tun würde(und dann als windowsXXP verkaufen)



  • @otze: Mein Reden!
    Das Programm malt zwar einen einigermaßen hübschen Fortschrittsbalken auf die Konsole, allerdings ist das auch schon alles.
    @PrOjEcT101: Wenn Du damit dem Benutzer den Fortschritt eines bestimmten Prozesses grafisch darstellen willst: lass es lieber bleiben, konzentrier dich lieber drauf, dass der Prozess optimiert wird und deswegen weniger lange braucht.



  • Hi

    Jo stimmt ihr habt recht .... eigendlich unwichtig. Wollte ich eigendlich auch
    nur so als kleinen Gag drin haben 😉
    na dann noch ma vielen Dank für die hilfe!

    cu


Anmelden zum Antworten