呵呵,撞枪口上了,前两天一直在研究这个问题。现在已经解决了,以下是我的代码
procedure TForm1.Button1Click(Sender: TObject);
var m,n:tmemorystream;
; ; i,j,p:integer;
begin
; ; ;if bigfile='' then
; ; ; ; exit;
; ; ;m:=tmemorystream.Create;
; ; ;m.LoadFromFile(bigfile);
; ; ;j:=(m.Size div 32768); //32768是你需要分割的小文件的大小,根据实际需要设
; ; ;i:=0;
; ; ;p:=m.size mod 32768;
; ; ;m.Position:=0;
; ; ;while i<=j do
; ; ;begin
; ; ; ; ; n:=tmemorystream.Create;
; ; ; ; ; if i=j then
; ; ; ; ; ; ;begin
; ; ; ; ; ; ;n.SetSize(p);
; ; ; ; ; ; ;m.Read(n.memory^,p);
; ; ; ; ; ; ;end
; ; ; ; ; else
; ; ; ; ; ; ; begin
; ; ; ; ; ; ; n.SetSize(32768);
; ; ; ; ; ; ; m.Read(n.memory^,32768);
; ; ; ; ; ; ; end;
; ; ; ; ; ; ; n.SaveToFile('c:/mat/'+copy(inttostr(i+1000),2,3)+'.cut');
; ; ; ; ; ; ; inc(i);
; ; ; ; ; ; ; n.Free;
; ; ;end;
; ; ; ; ; ; ;m.free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var m,n:tmemorystream;
; ;i,j:integer;
begin
; ; ;m:=tmemorystream.Create;
; ; ;i:=0;
; ; ;j:=159;
; ; ;m.SetSize(5230496); ; //5230496我使用的例子中原文件大小,也可根据需要设置
; ; ;while i<=j do
; ; ;begin
; ; ; ; ; n:=tmemorystream.Create;
; ; ; ; ; n.LoadFromFile('c:/mat/'+copy(inttostr(i+1000),2,3)+'.cut');
; ; ; ; ; m.Write(n.memory^,n.size);
; ; ; ; ; inc(i);
; ; ; ; ; n.free;
; ; ;end;
; ; ;m.SaveToFile('c:/02.swf');
; ; ;m.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
; ; ;if OpenDialog1.Execute then
; ; ; ; bigfile:=OpenDialog1.FileName;
end;
可执行,拷贝了研究一下,希望对你有帮助