Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

Re: FileStream: Falsche Ausgabe unter D2010

  Alt 19. Nov 2009, 23:02
Was für Text ist in der Datei?

Unicode ist 2 Byte pro Zeichen, also sind in der Datei auch nur halbsoviele Dateien.

Delphi-Quellcode:
setlength(s, size div 2);
readbuffer(s[1], size and -2);
showmessage(s);
oder
Delphi-Quellcode:
setlength(s, size div 2);
readbuffer(s[1], Length(s) * 2);
showmessage(s);
aber besser ... denn irgendwann in ferner Zukunft wird Unicode 4 Byte und dann stimmt die 2 nicht mehr
Delphi-Quellcode:
setlength(s, size div SizeOf(Char));
readbuffer(s[1], size and -SizeOf(Char));
showmessage(s);
oder
Delphi-Quellcode:
setlength(s, size div SizeOf(Char));
readbuffer(s[1], Length(s) * SizeOf(Char));
showmessage(s);


Und was so ewig dauert ... k.A., aber die Stringbehandlung ist seit D2009 eh voll schrottig.
Definier {$STRINGCHECKS OFF} und versuch es nochmal ... vielleicht bringt es was.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat