Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien zerlegen und zusammenfügen (https://www.delphipraxis.net/67471-dateien-zerlegen-und-zusammenfuegen.html)

Phistev 17. Apr 2006 09:47

Re: Dateien zerlegen und zusammenfügen
 
1. richtig
2. richtig

3. möglich, geht aber besser

Es gibt zwar TMemoryStream.LoadFromFile, der lädt aber die gesamte Datei in den Arbeitsspeicher. Solange die Datei kleiner als etwa 1,9 GB ist, geht das noch gut, ansonsten EOutOfMemory. Ich würde hier einen FileSteam zum Lesen und einen zum Schreiben verwenden und dann mit Delphi-Referenz durchsuchenTFileSteam.CopyFrom arbeiten.

Hawkeye219 17. Apr 2006 09:53

Re: Dateien zerlegen und zusammenfügen
 
Zitat:

Zitat von Phistev

Aha, Kopieren mit Dampf! :mrgreen:

bscreator 17. Apr 2006 10:45

Re: Dateien zerlegen und zusammenfügen
 
LoadFromFile und SaveToFile kenn ich schon, aber da machts irgendwie keinen Spass, weil man damit keinen direkten Einfluss auf den Kopierfortschritt, bzw. den Kopiervorgang hat.


Mit
Delphi-Quellcode:
CopyFrom
kann man die Anzahl an Bytes angeben, die kopiert werden.

Wenn ich mit
Delphi-Quellcode:
CopyFrom
beispielsweise 20 Bytes kopieren möchte, dann wird also automatisch ein (in diesem Fall) 20Byte großer Bereich im RAM reserviert und nach dem Kopiervorgang automatisch wieder freigegeben, versteh ich das richtig ?

(Weil in der Delphi-Hilfe steht, dass der Benutzer keinen Pufferspeicher zu verwalten braucht.)

Da ja ein Datenaustausch von Festplatte zu Festplatte nur über den Arbeitsspeicher möglich ist.

Hawkeye219 17. Apr 2006 10:53

Re: Dateien zerlegen und zusammenfügen
 
Zitat:

Zitat von bscreator
Wenn ich mit
Delphi-Quellcode:
CopyFrom
beispielsweise 20 Bytes kopieren möchte, dann wird also automatisch ein (in diesem Fall) 20Byte großer Bereich im RAM reserviert und nach dem Kopiervorgang automatisch wieder freigegeben, versteh ich das richtig ?

So ist es! Delphi reserviert einen max. 60 KByte großen Puffer und gibt diesen auch wieder frei.

Gruß Hawkeye

bscreator 17. Apr 2006 11:10

Re: Dateien zerlegen und zusammenfügen
 
Wenn ich den Dateipuffer aber selbst reservieren, byte für byte hineinschreiben und auch wieder freigeben möcht, dann muss ich mit
Delphi-Quellcode:
TMemoryStream
arbeiten, oder gibts für das auch noch ne andere Möglichkeit ?

Luckie 17. Apr 2006 11:13

Re: Dateien zerlegen und zusammenfügen
 
Nein geht auch mit TFileStream: Delphi-Referenz durchsuchenReadBuffer und Delphi-Referenz durchsuchenWriteBuffer. Und wenn du noch einen Fortschritt brauchst, guck dir mal den TStreamProgressAdapter an.

Hawkeye219 17. Apr 2006 11:34

Re: Dateien zerlegen und zusammenfügen
 
Du solltest einmal in der Online-Hilfe zu TStream die Beschreibung der Methoden Delphi-Referenz durchsuchenTStream.Read und Delphi-Referenz durchsuchenTStream.ReadBuffer lesen. Das könnte interessant für Dich sein...

Gruß Hawkeye

//Edit: warum ist mir Luckies Beitrag entgangen? :oops:


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

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