Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Esta função eu criei para ajudar um usuário do fórum e resolvi então colocar aqui no laboratório de scripts para quem precisar
procedure QuebraArquivo(FileName: string; MaxSizeByte: LongInt = 524288);
var
Arq, Arq2 : file of byte;
buffer: array [1 .. 524288] of byte;//buffer de 1MB
bufferSize: integer;
cont, cont2 : integer;
begin
AssignFile(Arq, FileName);
Reset(Arq);
bufferSize := Length(buffer);
cont := 0;
while(not(eof(Arq))) do
begin
inc(cont);
AssignFile(Arq2, FileName+inttostr(cont));
Rewrite(Arq2);
//faz duas leituras de 512Kb
for cont2 := 1 to Round(MaxSizeByte/length(buffer))+1 do
begin
BlockRead(Arq, buffer, bufferSize, BufferSize);
BlockWrite(Arq2, buffer, BufferSize, BufferSize);
end;
CloseFile(Arq2);
end;
CloseFile(Arq);
end;