分割文件最简代码~~~~~(100分)

  • 主题发起人 主题发起人 tanguo
  • 开始时间 开始时间
T

tanguo

Unregistered / Unconfirmed
GUEST, unregistred user!
有TXT文件一个,价值 20M,求将其分割成 N 个 10K 的小TXT文件的最简代码。

呵呵~
 
分割是很简单,你要不要分割后的文件也是可读的呢?
如果要就有些麻烦(要考虑中文问题)
否则的话,弄个文件流,一次读10K,然后写入另一个文件就行了。
 
http://antic_ant.delphibbs.com 上有原码
 
分割后保存为批处理就可以还原了。
 
呵呵,撞枪口上了,前两天一直在研究这个问题。现在已经解决了,以下是我的代码
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;
可执行,拷贝了研究一下,希望对你有帮助
 
接受答案了.
 
后退
顶部