Laden...

Letztes Zeichen in Console löschen

Erstellt von VBMichi vor 16 Jahren Letzter Beitrag vor 16 Jahren 5.784 Views
V
VBMichi Themenstarter:in
28 Beiträge seit 2007
vor 16 Jahren
Letztes Zeichen in Console löschen

Hi,

ist es möglich das letzte Zeichen in der Console zu löschen und durch ein neues ersetzen? Also z.B. das eine Zahl solange hochzählt bis der Benutzer einen Knopf drückt und immer auf der selben Position bleibt?
Mit

Console.Clear();

ist ja alles weg..

Grüße,
Michi

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo VBMichi,

musst du nicht löschen. Einfach überschreiben. Dazu vor dem Schreiben die Cursor-Position setzen: Console.CursorLeft/Console.CursorTop

herbivore

564 Beiträge seit 2005
vor 16 Jahren
static void RemoveLastChar()
{
    if (Console.CursorLeft > 0)
    {
        Console.CursorLeft--;
        Console.Write(' ');
        Console.CursorLeft--;
    }
    else
    {
        Console.CursorTop--;
        Console.CursorLeft = Console.BufferWidth - 1;
        Console.Write(' ');
        Console.CursorTop--;
        Console.CursorLeft = Console.BufferWidth - 1;
    }
}
S
27 Beiträge seit 2007
vor 16 Jahren

Ich meine, es geht noch einfacher:


Console.Write("\b");

\b (= Backspace) löscht das letzte Zeichen und setzt den Cursor an dessen Stelle.

:::

Text auf einem Button im Computer Museum Boston, USA

V
VBMichi Themenstarter:in
28 Beiträge seit 2007
vor 16 Jahren

Hi Leute,

danke für die Antworten, hab es hinbekommen, war jetzt ja auch nicht mehr schwer 👍
Noch eine kleine Frage:

Ich lass den Code in einer Schleife wiederholen. Nun möchte ich dass das solang geschieht bis der Benutzer eine Taste drückt.
Wie funktioniert das denn?

Habe es so versucht:

while(Console.ReadKey() == false) {

Das haut mir der Compiler aber um die Ohren. Wie funktioniert das denn richtig?

Grüße,
Michi

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo VBMichi,

while (!Console.KeyAvailable)

Siehe auch [Tipp] Anfängerfehler == true / == false.

herbivore

V
VBMichi Themenstarter:in
28 Beiträge seit 2007
vor 16 Jahren

Super,

danke Dir!