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;