AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bestimmte Teile einer Datei in Stream laden
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Teile einer Datei in Stream laden

Ein Thema von Björn Ole · begonnen am 10. Jul 2008 · letzter Beitrag vom 16. Jul 2008
Antwort Antwort
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#1

Bestimmte Teile einer Datei in Stream laden

  Alt 10. Jul 2008, 23:15
Nabend.

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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.114 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Bestimmte Teile einer Datei in Stream laden

  Alt 10. Jul 2008, 23:38
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?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#3

Re: Bestimmte Teile einer Datei in Stream laden

  Alt 11. Jul 2008, 00:06
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ß.
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Bestimmte Teile einer Datei in Stream laden

  Alt 11. Jul 2008, 00:41
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:
var
  fs : TFileStream;

  DateiEnde,
  Laenge : int64;
[ ... ]

fs.Seek (0,soFromEnd)
DateiEnde := fs.Position;
fs.Seek (DeinePosition,soFromBeginning);

Laenge := DateiEnde - DeinePosition;
Um den Stream segmente-weise auszulesen kannst
Delphi-Quellcode:
var
  tmpStream : TMemoryStream:

[ ... ]

SegmentLaenge := 400;

tmpStream.Clear;
fs.Seek (DeinePosition,soFromBeginning);
tmpStream.CopyFrom(fs,SegmentLaenge);

Post (URL,tmpStream);
benutzen.

(alles aus dem Kopf und ungetestet)
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#5

Re: Bestimmte Teile einer Datei in Stream laden

  Alt 16. Jul 2008, 01:01
Danke, hat mir sehr weitergeholfen!
Besser später als nie.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz