![]() |
Bestimmte Teile einer Datei in Stream laden
Nabend. :cheers:
Hätte da mal ein kleines Problem. Ich will Dateisegmente unterschiedlicher Größe in einen (File)Stream laden. Z.B. brauche ich mal die ersten 400 Bytes einer Datei, anschließend ab dem 2000. Byte die nächsten 700 Bytes. Zur Not wär ich auch mit einem Umkopieren in ein MemoryStream zufrieden, aber ich möchte den Speicher nicht unnötig belasten. Was ich vorhabe: Die geladenen Segmente werden analysiert und per Indys IdHTTP.Post auf einen Webserver hochgeladen. Vielleicht kann mir ja jemand dabei helfen. Danke, Björn. |
Re: Bestimmte Teile einer Datei in Stream laden
Moin Björn,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. An welcher Stelle kommst Du denn jetzt nicht weiter? Grundsätzliche Probleme mit dem Laden aus einem FileStream? Auswahl einer Position? |
Re: Bestimmte Teile einer Datei in Stream laden
Hi Christian,
nochmal andersrum formuliert: ich weiß nicht, wie ich den Stream bearbeiten muss, damit ich ihn anschließen einfach per Post(MyURL, MyStream) weitergeben kann. Per .Position kann ich an die gewünschte Stelle springen, aber wie kann ich die Länge der zu sendenden Daten festlegen? Gruß. |
Re: Bestimmte Teile einer Datei in Stream laden
Auch von mir ein Herzliches Willkommen!
Welche Länge willst du denn wo festlegen? Die Länge des (ich nehme mal an) FileStreams kriegst du raus, wenn du mit Seek ans Ende der Datei springst, dort dir Position die Position geben lässt und anschließend an die gewünschte Position hüpfst. Die Länge der Daten wäre dann DateiEnde - Position.
Delphi-Quellcode:
Um den Stream segmente-weise auszulesen kannst
var
fs : TFileStream; DateiEnde, Laenge : int64; [ ... ] fs.Seek (0,soFromEnd) DateiEnde := fs.Position; fs.Seek (DeinePosition,soFromBeginning); Laenge := DateiEnde - DeinePosition;
Delphi-Quellcode:
benutzen.
var
tmpStream : TMemoryStream: [ ... ] SegmentLaenge := 400; tmpStream.Clear; fs.Seek (DeinePosition,soFromBeginning); tmpStream.CopyFrom(fs,SegmentLaenge); Post (URL,tmpStream); (alles aus dem Kopf und ungetestet) |
Re: Bestimmte Teile einer Datei in Stream laden
Danke, hat mir sehr weitergeholfen!
Besser später als nie. :nerd: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 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