![]() |
möchte Datei variabeler Länge in Byte-Array laden
Hallo,
möchte Datei variabeler Länge in Byte-Array laden +++BD7+++ Frage ist nun die Dimensionierung des Arrays. Ich will ja nicht ein Byte-Array mit 1 000 000 Elementen machen um allen Fällen gerecht zu werden. Was kann man da machen Danke für Hilfe E. B. |
Re: möchte Datei variabeler Länge in Byte-Array laden
So oder ähnlich könnte es funktionieren:
Delphi-Quellcode:
Grüße vom marabu
var
fs: TFileStream; iSize: cardinal; da: array of byte; begin fs := TFileStream.Create(fileName, fmOpenRead, fmShareDenyWrite); SetLength(da, fs.Size); fs.Read(da[0], fs.Size); fs.Free; end; |
Re: möchte Datei variabeler Länge in Byte-Array laden
moin ecco,
das was du vorhast ist zwar möglich, aber normalerweise nicht üblich. Eine Datei kann unter Windows je nach Dateisystem riesig sein. Angenommen die Datei ist 100 MB groß, dann hat das Array eine Länge von 104857600 -1 Byte. D. h. du benötigst min. 100 MB Arbeitsspeicher. Nun kannst du dieses Problem umgehen, indem du dir einen Puffer anlegst und die Datei nach und nach einliest. Das zur Theorie, die Suche wird dir sicherlich auch noch einges dazu ausspucken. BlockRead, Read, TFileStream, File, CreateFile, CreateFileMapping, |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr. |
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