Contributor: CAMERON COLE


{The following code is off the top of my head so use with caution as it
has NO error checking in it and I have never used to for the purposes
you are describing.  You will need to reverse the code to put the files
back together when they are done.  Try this (Good Luck):

You could use DOS copy with the /b to put it back together

 copy /b file1 file2 file3 output.fil

}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   inFile,outFile: FILE;
   CopyBuffer : POINTER; { buffer for copying }

   iRecsOK, iRecsWr, iX: Integer;
   sFileName: String;

CONST
  ChunkSize : LONGINT = 1424000; { copy in 1.44 meg chunks }

begin

  GETMEM (CopyBuffer, ChunkSize); { allocate the buffer }

  sFileName := 'd:\demo\winsave';
  Assignfile(inFile,sFileName + '.ZIP');
  Reset(inFile,1);

 iX := 1;
   repeat
      AssignFile(outFile,sFileName + IntToStr(iX) + '.ZIP');

      Rewrite(outFile,1);
      inc(iX);
      BlockRead(InFile, CopyBuffer^, Chunksize, iRecsOK);
      BlockWrite(OutFile, CopyBuffer^, iRecsOK, iRecsWr);
      CloseFile(outFile);
   until (iRecsOK < Chunksize);

CloseFile(inFile);
FREEMEM (CopyBuffer, ChunkSize); { free the buffer }
END;