Aus Stream nur die 2. Zeile auslesen ?

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von EDR-Temporär.

    Aus Stream nur die 2. Zeile auslesen ?

    Hallo zusammen,

    über tcpClient.GetStream.read lese ich Bytes über Telnet ein:

    VB.NET-Quellcode

    1. Dim bytes(tcpClient.ReceiveBufferSize)As Byte
    2. tcpClient.GetStream.Read(bytes,0,CInt(tcpClient.ReceiveBufferSize))
    3. Dim returndata As String = System.Text.Encoding.ASCII.GetString(bytes)
    4. textBox1.text = textBox1.Text & returndata & vbCrLf


    Jetzt erscheinen in meiner Textbox zwei Zeilen:


    1
    11.000


    Das ist auch die korrekte Antwort auf meinen Befehl den ich per Telnet an den Server schicke. Mich interessiert aber nur die 2. Zeile. Ich weis leider nicht wie ich die beiden Zeilen getrennt voneinander "auslesen" kann. Kann mir da bitte jemand einen Tipp in die richtige Richtung geben ?

    Danke und Gruß
    Kay
    @kayle Alternativ kannst Du auch einen StringReader verwenden:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim txt = "111" & Environment.NewLine & "222"
    3. Dim line As String = ""
    4. Using sr = New IO.StringReader(txt)
    5. sr.ReadLine() ' 1. Zeile überlesen
    6. line = sr.ReadLine()
    7. End Using
    8. MessageBox.Show(line)
    9. End Sub

    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!
    wieso denn StringReader?
    Die Daten liegen als Stream vor, werden in einen String eingelesen, und dann mit einem StringReader zeilenweise gelesen??

    Warum nicht gleich mit einen StreamReader direkt aus dem Stream zeilenweise lesen?
    Aber achtung: Der StreamReader darf ausnahmsweise nicht anschließend disposed werden, weil das die tcpConnection zerstören würde.