Seite 1 von 1

Fortschrittsanzeige auf der Konsole

Verfasst: 25.05.2024 19:39
von Ara
Ich habe heute einmal versucht, eine Fortschrittsanzeige auf der Konsole zu erstellen.
Es funktioniert fast so, wie es soll. Wenn man jedoch die Fenster Größe verkleinert, zerstört es mir die komplette Anzeige.
Es soll unter der Eingabe auf der Konsole Positioniert sein, also keine feste Position.
Es soll lauffähig unter Windows und Linux sein.
In den Compiler-Optionen habe ich bei Executable-Format: Console ausgewählt.

Hier ein kleines Beispiel, damit ihr seht, was ich meine.

Code: Alles auswählen

OpenConsole("Console")

b.l = 9856
c.l = 0
d.l = 25  ; Breite der Fortschrittsanzeige
StartTime.q = ElapsedMilliseconds()

For a = 1 To b
  c = (b-a)*(ElapsedMilliseconds() - StartTime)/1000/a
  Print(#CR$ + LSet("[", d*a/b+1, "■") + RSet("]", d-d*a/b+1, ".") + "   " + RSet(StrD(100*a/b, 2), 6) + "%   Rest: " + RSet(Str(Hour(c)), 2, "0")+":"+RSet(Str(Minute(c)), 2, "0")+":"+RSet(Str(Second(c)), 2, "0") + "   ")
  Delay(1)
Next
Delay(3000)
Mit EnableGraphicalConsole(1) wird der Zeilenumbruch zwar unterbunden, #CR$ setzt aber nicht mehr den Text an den Anfang der Zeile.

Für jede Hilfe bin ich Dankbar
Thomas

Re: Fortschrittsanzeige auf der Konsole

Verfasst: 18.08.2024 20:34
von es_91
Wer grafische Konsolen verwendet sollte immer die Cursorposition puffern und ConsoleLocate verwenden!