VB Console: Angezeigten Text Speichern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VB Console: Angezeigten Text Speichern

    Hallo Leute,
    meine Frage ist im Titel schon drinnen. Wie kann ich den GESAMTEN momentan Angezeigten Text in einer Konsole Speichern.
    Habe es bereits mit

    VB.NET-Quellcode

    1. Console.OpenStandardOutput.Read()
    versucht. Aber dabei entsteht immer eine IO Exception, oder er ließt nur eine Zeile.
    Hab mir auch die ganzen Funktionen des StandardOutput angesehen, hab aber irgendwie nix zustande bekommen.

    Hat da jemand ne Idee?

    MfG,
    Revenant
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany ich meinte nicht in eine Datei, sondern z. B. in ein Array oder eine art Puffer.

    Der Text der durch Console.Write/Writeline in die Konsole geschrieben wurde soll in ein Array(oder ähnliches) gespeichert werden und dann später wieder angezeigt werden.
    Man soll z. B. im Array(oder halt dem Speicher) den Content in Zeile [5] Aufrufen und ändern können.
    Ich möchte also eine Art Abbild des Konsoleninhaltes speichern, bearbeiten und später wieder Anzeigen.

    Sowas ähnliches gibt es ja bei Prozessen:

    VB.NET-Quellcode

    1. Process.StandartOutput.ReadToEnd


    MfG,
    Revenant
    @n7revenant Dann musst Du eine Klasse schreiben, die die Console-Ausgaben auffängt, zwischenspeicheert und an die Console ausgibt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Also hab hier mal was aufgesetzt:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Net
    3. Module Module1
    4. Public ConOut As TextWriter
    5. Public ConIn As TextReader
    6. Public ConsoleText() As String
    7. Public ConsoleTextCount As Integer = 1
    8. Sub Main()
    9. Console.SetIn(ConIn)
    10. Console.SetOut(ConOut)
    11. End Sub
    12. Sub Write(ByVal text As String, ByVal NewLine As Boolean)
    13. If NewLine = True Then
    14. text &= Environment.NewLine
    15. End If
    16. ConOut.Write(text)
    17. ConsoleText(ConsoleTextCount + 1) = text
    18. text = ""
    19. End Sub
    20. End Module

    @n7revenant M;ach doch Write() und WriteLine(), da musst Du nur die Klasse umbenennen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!