Prozessanzeige in Konsole

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

jeykey

Betreff: Prozessanzeige in Konsole

BeitragMi, Jan 06, 2010 2:53
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

Ich möchte in der Konsole eine kleine Statusanzeige meines Programms realisieren.
Mit BlitzMax und Print() kann man allerdings immer nur eine neue Zeile (Zeilenumbruch) in die Konsole schreiben. Das ganze sieht dann etwa so aus:

1%
2%
3%
...
97%
98%
99%

Mittlerweile habe ich herausgefunden wie man den Zeilenumbruch wegbekommt:

Code: [AUSKLAPPEN]
StandardIOStream.WriteString("test1")
StandardIOStream.Flush()
StandardIOStream.WriteString("test2")
StandardIOStream.Flush()


Allerdings möchte ich, dass die Ausgabe immer in derselben Zeile erscheint, so dass die alte Zeile überschrieben wird.

mfg
jeykey

BladeRunner

Moderator

BeitragMi, Jan 06, 2010 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Local progstring:String
Local proglen:Int = 0
Local clearstring:String
For Local i:Int = 0 To 100
   While proglen > 0
      proglen:- 1
      clearstring:+ Chr(8)
   Wend
   StandardIOStream.WriteString(clearstring)
   StandardIOStream.Flush()
   clearstring=""
   progstring:String = String(i) + "%"
   proglen = progstring.length
   StandardIOStream.WriteString(progstring)
   StandardIOStream.Flush()
   Delay(150)
Next
WaitKey()

Nur als Ansatz, sicher ausbaubar. Der Schlüssel ist chr(8) - der ASCII-Code für einen Rückschritt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Silver_Knee

BeitragMi, Jan 06, 2010 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert übrigens auch mit BlitzPlus (B+,Blitz+) mit Write Chr(8)

BtbN

BeitragMi, Jan 06, 2010 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier eine kleine funktion, die die zuletzt auf der konsole ausgegebene Zeile löscht und mit der neuen Überschreibt:

BlitzMax: [AUSKLAPPEN]
Function OverwriteOldLine(line:String)
Local h:String = Chr(27)
WriteStdout(h+"[s"+h+"[1A"+h+"[K"+line+h+"[u")
EndFunction

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group