谁给我这样的程序(读RAR文件,然后新建一个RAR文件,并将读出的内容存在其中)
RAR文件的大小要大于128K
要求分成两次读写,
谢谢
var
p,p1: pointer;
pch: PChar;
s: String;
buf1,buf2:TMemoryStream;
fil1: File;
i: Integer;
begin
buf1 :=TMemoryStream.Create;
buf1.LoadFromFile('e:\jj.rar');
buf1.Seek(0,0);
GetMem(p, buf1.size); i := buf1.Read(p^,buf1.Size);
showmessage(inttostr(i));
AssignFile(fil1,'e:\jj2.rar');
rewrite(fil1);
write(fil1, p^);
end;
上面的程序对于小于128KB的文件是可以的,对于大的就不行,
所以我要求分成两段读写,但会有问题,
想知道问题的兄弟试试就知道了
RAR文件的大小要大于128K
要求分成两次读写,
谢谢
var
p,p1: pointer;
pch: PChar;
s: String;
buf1,buf2:TMemoryStream;
fil1: File;
i: Integer;
begin
buf1 :=TMemoryStream.Create;
buf1.LoadFromFile('e:\jj.rar');
buf1.Seek(0,0);
GetMem(p, buf1.size); i := buf1.Read(p^,buf1.Size);
showmessage(inttostr(i));
AssignFile(fil1,'e:\jj2.rar');
rewrite(fil1);
write(fil1, p^);
end;
上面的程序对于小于128KB的文件是可以的,对于大的就不行,
所以我要求分成两段读写,但会有问题,
想知道问题的兄弟试试就知道了
buf1.LoadFromFile('G:\工作\Delphi精要.rar');
buf1.Seek(0,0);
buf1.SaveToFile('G:\工作\Delphi精要AAA.rar');
buf1.Free;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
buf1.LoadFromFile('G:\工作\Delphi精要.rar');
buf1.Seek(0,0);
buf1.SaveToFile('G:\工作\Delphi精要AAA.rar');
buf1.Free;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
rewrite(fil1);
改为:
rewrite(fil1, i);
因为rewrite缺省缓冲区大小是128字节。
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————