StreamReader.ReadLine() liest nicht die komplette Zeile bis zum CR

14/05/2008 - 09:37 von M. Wittig | Report spam
Hallo,

beim Lesen einer größeren Menge von Textdateien bin ich auf folgendes
Problem der Methode StreamReader.ReadLine() gestoßen:
Manchmal liefert ReadLine nicht die komplette Zeile, sondern nur den ersten
Teil. Hier scheint es einen Zusammenhang zu geben mit der Buffergröße.
Vermutlich liest StreamReader.ReadLine() bis zum Ende des Buffers und sollte
dann den nàchsten Block laden, um bis zum nàchsten CR/LF weiterlesen. Das
scheint manchmal nicht zu funktionieren, dann wird vermutlich nur bis zum
Ende des Buffers gelesen. Ich habe diese Vermutung, weil die inkomplette
Zeile immer am Ende eines Blocks endet (z.B. Offset 0x77FF).
Der Fehler tritt beim Lesen von ca. 120 Dateien dreimal auf. Durch Veràndern
der Buffergröße im Konstruktor des StreamReaders verschwindet der Fehler oder
er betrifft dann andere Dateien.
Kennt jemand dieses Problem und weiss Abhilfe, so daß es immer unabhàngig
von der Buffergröße funktioniert.

Mein System ist ein XP SP2, VS2005 u .NET 2.0.

Gruss, M. Wittig
 

Lesen sie die antworten

#1 Armin Zingler
14/05/2008 - 10:14 | Warnen spam
"M. Wittig" <M. schrieb
Hallo,

beim Lesen einer größeren Menge von Textdateien bin ich auf
folgendes Problem der Methode StreamReader.ReadLine() gestoßen:
Manchmal liefert ReadLine nicht die komplette Zeile, sondern nur den
ersten Teil. [...]



Ist hier noch nicht vorgekommen. Kann mir schwer vorstellen, dass ein
solcher, m.E. schwerwiegender Bug, noch nicht gefixt worden wàre. Kannst
du eine "betroffene" Datei irgendwo hochladen?


Armin

Ähnliche fragen