Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Howto: Datei byteweise lesen und schreiben (https://www.delphipraxis.net/75741-howto-datei-byteweise-lesen-und-schreiben.html)

PASST 24. Aug 2006 13:56

Re: Howto: Datei byteweise lesen und schreiben
 
Das klappt aber trotz fmOpenReadWrite immer noch nicht`.

PASST 24. Aug 2006 14:29

Re: Howto: Datei byteweise lesen und schreiben
 
Entschuldigt allerseits, manchmal bin ich zu blöd zum Sch...! :wall:

Habe vergessen die Variable FS zu initialisieren. Jetzt klappt es auch.

Welche Variante ist denn vorzuziehen? FileOpen oder Filestream.Create?

Der_Unwissende 24. Aug 2006 14:43

Re: Howto: Datei byteweise lesen und schreiben
 
Zitat:

Zitat von Delphi OH
Die Verwendung der nicht-nativen Delphi-Dateiroutinen wie FileCreate ist nicht zu empfehlen. Diese Routinen greifen auf die Systemroutinen zurück und geben Betriebssystem-Datei-Handles zurück, keine Delphi-Dateivariablen. Bei ihnen handelt es sich um Low-Level-Routinen für den Dateizugriff. Verwenden Sie für normale Dateioperationen stattdessen AssignFile, Rewrite und Reset

Wie du in dem Beispiel auch siehst, bekommst du hier ein Handle zurück, ist nicht wirklich die feine (OOP) Art. Es macht im Prinzip wenig Unterschiede, da letztlich hinter einem TStream etwas ähnliches steht, aber ein TStream hat den Vorteil dass es ein Objekt ist. Wenn du TStream verwendest, hast du eine Abstrakte Basisklasse mit all ihren Funktionen. Das heißt, dass du hier die Eigenschaften eines TStream garantieren kannst (egal ob es ein TFileStream, ein TMemoryStream oder ein anderer Nachfahre ist). Bei einem Handle (von Delphi als Integer zurückgegeben) hast du die Typsicherheit nicht. Könnte ein Integer sein oder ein Handle auf eine Datei oder ein Handle auf ein GDI Objekt, wer weiß das schon?
Deswegen würde ich dir eher zur Kapselung TStream raten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz