var
  newfile : TFileStream;
begin
  newfile := TFileStream.Create('file.dat', fmcreate);
  newfile.read(buf, count);
  newfile.ReadBuffer(buf, count);
  newfile.write(buf, count);
  newfile.writeBuffer(buf, count);
//   ... and so on
  newfile.free;
end;

解决方案 »

  1.   

    删除文件的一段:
    rocedure 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;
      

  2.   

    谢谢上面两位了,不过比如noflybird给的只是一些方法属性啊,具体使用我有点问题。我的程序里有一个PChar类型的变量aaa,aaa^指向的是一个调用其它函数生成的大约几百位的字符串,作为最后的输出结果。所以我需要把这个aaa的内容写到文件里去,保存成二进制的文件,怎么把一个已知大小的PChar保存到文件呢?
      

  3.   

    PChar是指针你不给把它保存起来,不知道这样可以不?
    你把PChar转换为Char类型再保存