Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

TFileStream unter Delphi 10?

  Alt 23. Jul 2017, 14:10
Delphi-Version: 10 Berlin
Hallo zusammen,

ich habe mal nach längerer Zeit wieder eine Frage. Ich wollte mal das neue Delphi ausprobieren, da es nervt, Dateinamen ohne asiatische Sonderzeichen nicht öffnen zu können, und habe gerade Delphi 10 Starter heruntergeladen. Leider habe ich im Delphi-Verzeichnis keinen Source zur RTL gefunden. Aber eine Klasse TBufferedFS, die von TFileStream abgeleitet war, hat nicht mehr richtig funktioniert, da ich in einem Coding ein TStream.CopyFrom hatte und das hat von dem TBufferesFS falsche Daten kopiert. Dabei habe ich festgestellt, dass TBufferedFS gar nicht aufgerufen wurde.

Ich habe das nun so gelöst, dass ich TBufferedFS direkt von TStream ableite und dort ein Feld mit einem TFileStream Objekt angelegt habe und alle inherited Read/Write/Seek-Aufrufe habe ich auf dieses umgebogen. Nun funktioniert das CopyFrom wieder.

Meine Frage ist nun, was an T(File)Stream hier anders ist, sodass dieses Coding mit dem Wechsel auf Delphi 10 nicht mehr funktioniert hat. Laut Doku zu Delphi 10 ruft TStream.CopyFrom intern TStream.ReadBuffer, und TStream.ReadBuffer ruft TStream.Read - und genau das ist nicht passiert, das heißt eines der beiden muss in TFileStream ohne den entsprechenden Aufruf überschrieben sein. Weiß jemand welches, damit ich zukünftig aufpassen kann wenn ich alte Programme migriere? Wo kann ich Infos zu solchen internen Unterschieden finden oder wo liegen die Sorces (vermutlich liegen die bei der Starter nicht bei?)

Viele Grüße

Felix
Felix Alter
  Mit Zitat antworten Zitat