由于蓝奏云限制100MB的大小,所以写了个命令行小工具。
存在的问题,切割速度不理想,没有进度跳,以后再改进吧。
{$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 := 1;
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)); {保存}
//Format('%02d',[IntToStr(i)]);
toStream.SaveToFile(FileName + '.' + Format('%.3d',[i]));
// Format('this is %d %d',[12,13]);
Inc(i);
p := p + Size;
end;
fStream.Free;
toStream.Free;
Result := True;
end;
var
infile:string = 'Athena Chu.wav';
begin
// infile
SplitFile(infile,3010241024); // 分割成30MB的大小
//writeln(format('%02s',[IntToStr(8)]));
//writeln(format('%.2d',[8])); // 这个是对的
end.
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法