Hallo himitsu,
TTextStream (ohne "Ex") funktioniert jetzt bei mir tadellos!
Aber ich verstehe TTextStreamEx (mit "Ex") überhaupt nicht...
Folgender simpler Alltags-Code führt z.B. dazu, dass sich das Programm aufhängt:
Delphi-Quellcode:
TextStream := TTextStreamEx.Reset(FileName,FEncoding);
TextStream.ReadLn(sHeader);
Meine Vermutung war: Die Funktion EoLn ist genau falsch herum definiert:
Statt
Result := Trim(FLine) <> '';
müsste es meiner Meinung nach
Result := Trim(FLine) = '';
heißen.
Dann bekommt man zwar soetwas ähnliches wie die erste Zeile geliefert, aber eben nicht genau. Meine Zeile enthält z.B. TABs: Die sind verschwunden und stattdessen sind an ihrer Stelle Leerzeichen.
Die Zeile wird also irgendwie zerstückelt und anschließend zusammengesetzt, da bei ReadLn die Funktion ReadFull aufgerufen wird, die sozusagen einzelne Werte aus einer Zeile einliest und anschließend mit Leerzeichen als Trenner wieder zusammensetzt.
So gehen mehrfache Leerzeichen, TABs und möglicherweise noch andere Dinge aus der ursprünglichen Zeile verloren.
Muss ich eine andere Methode benutzen oder habe ich TTextStreamEx blos nicht verstanden?
Gruß
Freejay