没有办法从文件流中删除一部分数据,除非重写整个文件流。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);  //在此设置输出文件名
      ShowMessage('完成!');
    finally
      FreeAndNil(Ori);
      FreeAndNil(Tmp);
    end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
    DStreamData('C:\Test1.Dat',200,300);
end;