![]() |
Aus filestream einen teil herausschneiden
Hallo, ich hab ein kleines Problem. ich habe einen Filestream in dem einebinäre datei ist. jetzt möchte ich ab einer gewissen stelle 116160 bytes aus dem filestream in einer cardinal variable haben. also setze ich mit stream.position(342342348); auf die adresse und mit stream.read(variable,116160) wollt ich lesen, aber die variable enthält 0 ?!?
|
Re: Aus filestream einen teil herausschneiden
Eine cardinal variable hat 4 Byte - das dürfte eng werden für deine 116160 Bytes.
Delphi-Quellcode:
Grüße vom marabu
var
fs: TFileStream; buf: array of byte; begin fs := TFileStream.Create(fileName, fmOpenRead); fs.Position := ThePosition; SetLength(buf, TheLength); fs.Read(buf[0], TheLength); fs.Free; end; |
Re: Aus filestream einen teil herausschneiden
hat cardinal nicht einen wertebereich von 0 bis 4294967295?!?!?
Nun ja, mit deiner lösung hab ich ein array, ich wollte aber eine integer oder am besten de cardinal!! |
Re: Aus filestream einen teil herausschneiden
Du verwechselst Wertebereich mit Typgröße. Mit den 4 Byte von cardinal kannst du genau den Wertebereich den du angegeben hast darstellen. Aber trotzdem passen halt nur 4 Byte rein. Vergleich es mal so:
Mit einer einstelligen Zahl kannst du insgesamt zehn Zustände angeben: 0, 1, ... , 9 Aber trotzdem wirst du immer nur eine Ziffer darin "speichern" können. |
Re: Aus filestream einen teil herausschneiden
Das mit dem Wertebereich siehst du richtig - den packt Cardinal in 32 bit, das sind 4 Byte. Du aber willst etwas über Hunderttausend Bytes einlesen. Wie gesagt, dass kann eng werden.
Freundliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 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