Hallo zusammen,
ihr werdet mit Sicherheit lachen, aber ich verzweifle grad...es ist wahrscheinlich so einfach das es hier eigt gar nicht reingehört aber ich versuche es trotzdem mal.
Kann man in einer Konsolenanwendung etwas verschieben das durch Console.Write festgelegt ist?
Ich habe hier grad das Beispiel eines Warenrechners, wo hinter dem Betrag (der eingegeben werden muss) ein "EUR" steht...dies sollte sich bestenfalls durch die Eingabe einer Zahl nach hinten verschieben.
Ist das möglich?
Danke schonmal für eure Hilfe
Also es wird zwar ein "EUR" angezeigt das ich durch SetCursorPosition dorthin verschoben habe...aber wenn die Zahl zu lang wird dann verschwindet das EUR quasi durch "überschreiben" und nach meinem Wunsch würde sich das EUR nach rechts verschieben wenn ich etwas schreibe
Console.WriteLine("Betrag: {0} {1}", varBetrag, varWaehrung);
wo ist das Problem?
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1
Grüße
**:::
Du suchst Console.CursorLeft.
Wenn die Zahl eingegeben wird überschreibst Du einfach den aktuellen Zeileninhalt mit dem was eingegeben wurde.
while(true)
{
Console.CursorLeft = 0;
Console.Write(curVal);
key = Console.ReadKey();
Console.Write(" EUR");
if (Char.IsNumber(key.KeyChar))
curVal += key.KeyChar;
}
CursorLeft allein hat das Problem, dass Du damit evtl. nicht alle Zeichen der aktuellen Zeile überschreibst und so überleibsel hast.
Du musst also:
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo zusammen,
aus meiner Sicht würde es vom Grundgedanken her reichen, sich die Cursorposition zu merken, ab dort neu " EUR" zu auszugeben und den Cusor wieder an die gemerkte Position zu setzen. Zumindest, wenn an die Zahl nur am Ende Ziffern angefügt werden können. Wenn am Ende auch Ziffern gelöscht werden können, müsste man " EUR " ausgeben. Wenn innerhalb der Zahl editiert werden kann, würde ich nach jeder einzelnen Änderung die jeweils die ganze Zahl + " EUR " ausgeben.
Man kann auch Pufferbereiche verschieben/kopieren. Aber ich denke, für das hier gewünschte wird es einfacher sein, den zu verschiebenden Text einfach neu auszugeben.
herbivore