Erhalte den Konsolenpuffer ohne die letzte Zeile mit C #?

8

Was ich versuche zu erreichen, ist eine selbst kompilierte c # Datei ohne giftige Ausgabe. Ich versuche das mit Console.MoveBufferArea Methode, aber Aussehen funktioniert nicht. Z.B. - Speichere den Code unten mit .bat extension:

%Vor%

Die Ausgabe ist:

%Vor%

Was wollen Sie // 2>nul || loswerden. Ist das möglich? Ist etwas in meiner Logik falsch (die Methode ClearC ) Benötige ich PInvoke?

    
npocmaka 19.06.2015, 22:34
quelle

1 Antwort

2

Wenn Sie das in der C # tun wollen, dann scheint die Funktion ClearC auf die folgende Funktion zu ändern:

%Vor%

Bewegen Sie den Cursor im Wesentlichen eine Zeile nach oben (zu der Zeile, die Ihre Eingabeaufforderung enthalten soll), löschen Sie die gesamte Zeile und bewegen Sie sich dann eine weitere Zeile nach oben (was Sie zur Leerzeile zwischen den Befehlen bringen sollte). Die zukünftige Ausgabe wird dann von hier aus stattfinden.

Der offensichtliche Nachteil besteht darin, dass Sie darauf warten müssen, dass der C # -Code kompiliert und ausgeführt wird, bevor // 2>nul || entfernt wird. Wenn Sie möchten, dass es schneller geht, müssen Sie eine auf einer Konsole / Batch-Datei basierende Lösung finden. Die andere Sache zu beachten ist, dass angenommen wird, dass die Eingabeaufforderung eine einzelne Zeile ist. Wenn es sich um eine sehr lange Eingabeaufforderung handelt, die sich über zwei Zeilen erstreckt, ist die Verwirrung etwas größer. Daher ist es möglicherweise besser, zwei Zeilen zu löschen, je nachdem, wie Sie dies planen.

Wenn Sie das ganze Schwein gehen und anfangen wollen, den Konsolenpuffer zu lesen, um festzustellen, wie lange die Eingabeaufforderung ist, dann sollten Sie sich das ansehen Frage . Während der Artikellink in der Antwort gebrochen ist, scheint der Code-Download immer noch zu funktionieren.

Wenn Sie den Batchfile-basierten Ansatz verwenden möchten, sollten Sie sich diese Frage ansehen.

    
forsvarir 24.06.2015, 12:25
quelle

Tags und Links