AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien zerlegen und zusammenfügen

Ein Thema von bscreator · begonnen am 14. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Phistev
(Gast)

n/a Beiträge
 
#11

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 09:47
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.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 09:53
Zitat von Phistev:
Aha, Kopieren mit Dampf!
  Mit Zitat antworten Zitat
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#13

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 10:45
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 CopyFrom kann man die Anzahl an Bytes angeben, die kopiert werden.

Wenn ich mit 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.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 10:53
Zitat von bscreator:
Wenn ich mit 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
  Mit Zitat antworten Zitat
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#15

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 11:10
Wenn ich den Dateipuffer aber selbst reservieren, byte für byte hineinschreiben und auch wieder freigeben möcht, dann muss ich mit TMemoryStream arbeiten, oder gibts für das auch noch ne andere Möglichkeit ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 11:13
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#17

Re: Dateien zerlegen und zusammenfügen

  Alt 17. Apr 2006, 11:34
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:24 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