Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: FileSplitter: Probleme mit großen Dateien

  Alt 25. Mär 2008, 15:54
Ich verstehe nicht, weshalb der Parameter CntParts überhaupt übergeben wird.
Angenommen, ich möchte eine Datei mit 5 GB in 650 MB grosse Stücke unterteilen.
Dann gehe ich doch so vor (Pseudocode):
Delphi-Quellcode:
Datei öffnen
while not eof do
begin
  ErzeugeNeueZieldatei;
  
  readsize := 0
  do
    LesePuffer; // 8 kB lesen
    SchreibeZieldatei; // bis zu 8 kB schreiben
    if readBytes <> Buffersize then break;
    readsize := readsize + readBytes;
  until readsize >= 650 MB;
  SchlieseZielDatei;
end;
Auf diese Art braucht man keine For-Schleife und entgeht den ganzen Problemen mit Int64 Werten.
Kleiner Nachteil meiner Lösung: die Grösse der Zieldatei muss ein Vielfaches der Puffergrösse sein.
Mit etwas Zusatzaufwand kann man das aber auch lösen.
Andreas
  Mit Zitat antworten Zitat