支持delphi
【 在 javame 的大作中提到: 】
:
: 这个算是半成品吧,问题还很多。切割速度还是不理想,
: 没有进度条。整整搞了一个星期。
:
: {$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,30\*1024\*1024); // 分割成30MB的大小
: //writeln(format('%02s',\[IntToStr(8)\]));
: //writeln(format('%.2d',\[8\])); // 这个是对的
: end.
:
: --
:
发自「今日水木 on 诺基亚3310」
--
FROM 1.95.91.*