Ich habe ein Problem beim Lesen von zwei Zeilen aus einem Stream-Reader. Ich möchte die erste Zeile lesen und dann mit der nächsten fortfahren. Hier ist mein Code:Lesen von zwei Zeilen aus StreamReader VB.Net
Public Function Read()
Dim a As New MemoryStream(ASCII.GetBytes("[ID] " & vbCrLf & " salut" & vbCrLf))
Debug.Print(client.ReadLine(a))
Debug.Print(client.ReadLine(a))
End Function
Public Function ReadLine(ByVal Data As MemoryStream)
Dim sr As New StreamReader(Data)
Return sr.ReadLine
End Function
Die Ausgabe lautet:
[ID]
Eine Zeile. Ich habe den Stream im Debug-Modus überprüft und festgestellt, dass nach dem ersten ReadLine-Aufruf die Position 15 war. Also muss ich den "Zeiger" nach dem ersten VbCrLf bewegen (das ist bis zum Ende). Aber ich denke nicht, dass das der richtige Weg ist. Wo liege ich falsch? Ich habe sogar den Stream nach Wert weitergegeben, also sollte es funktionieren.
EDIT
machte ich einige Prüfungen und es scheint, dass und nur dann, wenn die Position bewegt sich zum Ende einen Strom vorbei. Ich habe einen Stream-Reader in der gleichen Read-Funktion erstellt und als Parameter den Memory-Stream übergeben. Es funktionierte. Ich weiß nicht, warum das passiert. Ich suche immer noch eine Answear.