首页  编辑  

删除文件的一段

Tags: /超级猛料/Stream.File.流、文件和目录/文件操作/   Date Created:

procedure DStreamData(FileName:String; StartPos,EndPos: Integer);

//StartPos: 从此开始"删除"信息,EndPos: 到此结束"删除"信息

//如果输入文件名与输出文件名相同,就等于把源文件的StartPos与EndPos之间的内容删除

var

 Ori: TFileStream;

 Tmp: TMemoryStream;

begin

   try

     Ori := TFileStream.Create(FileName, fmOpenRead);

     Tmp := TMemoryStream.Create;

     Tmp.CopyFrom(Ori, StartPos);

     //Tmp从Ori拷贝数据,但在StartPos与EndPos之间不拷,因此形同删除了一段数据

     Ori.Seek(EndPos,soFromBeginning);

     Tmp.CopyFrom(Ori, Ori.Size-EndPos);

     Tmp.SaveToFile(FileName);  //在此设置输出文件名

   finally

     FreeAndNil(Ori);

     FreeAndNil(Tmp);

   end;

end;