首页
社区
课程
招聘
未解决 [求助]Delphi程序运行结果不对
发表于: 2020-4-8 14:27 2055

未解决 [求助]Delphi程序运行结果不对

2020-4-8 14:27
2055

// 我想把文件分割成10MB每一个的大小,编译能够通过。
// 运行的结果不对。
// 请教哪里错了啊?

 

{$APPTYPE CONSOLE}

 

Uses
SysUtils,Classes,Variants ;

 

function SplitFile(const FileName: string; Size: Cardinal): Boolean;
var
fStream: TFileStream; {原始文件}
toStream: TMemoryStream; {分文件}
p,i: Integer; {p 记录当前指针位置; i 记录这是第几个分的文件}
begin
Result := False;

 

Size := Size * 1024; {把大小的单位转换为字节}

 

fStream := TFileStream.Create(FileName, fmOpenRead);
p := 0;
i := 0;

 

toStream := TMemoryStream.Create;

 

while p < fStream.Size do
begin
toStream.Clear; {清空上次数据}
fStream.Position := p; {放好指针位置}

if fStream.Size-p < Size then Size := fStream.Size-p; {最后一个时, 有多少算多少}

toStream.CopyFrom(fStream, Size); {复制}
toStream.SaveToFile(FileName + '.' + IntToStr(i));        {保存}
Inc(i);
p := p + Size;

end;

 

fStream.Free;
toStream.Free;
Result := True;
end;

 

var
infile:string = 'Asahi.wav';
begin
// infile
SplitFile(infile,1010241024); // 分割成10MB的大小
end.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我想把这2个源文件拆成2个,为什么编译的时候会报错?
标识符号没有找到。
2020-4-8 14:29
0
雪    币: 117
活跃值: (3197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
WINDOWS 7-zip 就好了。
LINUX 有SPLIT 。
2020-4-8 14:52
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
var infile:='d:\abc.zip';  SplitFile(infile, 10*1024); // 分割成10MB的大小
2020-4-20 18:41
0
游客
登录 | 注册 方可回帖
返回
//