somefile.txt中有几行文本。
var
  Fconfig:textfile;
  somestring:string;
  otherstring:string;
begin
  Assignfile(Fconfig,'c:\somefile.txt');
  Reset(Fconfig);
  Readln(Fconfig,somestring);
  CloseFile(Fconfig);
此后,我又想修改此文件。
  Assignfile(Fconfig,'c:\somefile.txt');
  rewrite(Fconfig);                     //出错,i/o error 32
  writeln(otherstring);
  closefile(Fconfig);
end;
后来,我发现closefile后也不能删除该文件,只有程序退出后才可以删除它。
请问怎么解决,谢谢。

解决方案 »

  1.   

    rewrite(Fconfig);                     //出错,i/o error 32改成 append(Fconfig)
      

  2.   

    rewrite的功能是Creates a new file and opens it. 看看帮助就知道了
      

  3.   

    我当然知道了,换个角度说,我想删除刚才打开的文件,再创建一个同名文件,写入新的内容,可是再第一次closefile后,deletefile也不行了。
    delphi好像没有释放文件句柄,我用D5。需要补丁么?
      

  4.   

    CloseHandle(); it's api.
      

  5.   

    去掉第2个 Assignfile(Fconfig,'c:\somefile.txt');可以不?
      

  6.   

    我要在别的函数中实现,还是要用Assignfile的。
      

  7.   

    我怀疑是 readln writeln之类的问题
      

  8.   

    我只知道delphi不会马上作IO操作,而是等几个操作一起作,提高效率,所以文件句柄不会马上释放。
      

  9.   

    啊我犯了一个低级错误,那个文件在别的地方被打开忘记关闭了!原代码没问题。
    不过思考的过程还是很有意思的,我想过用c写个dll,再用delphi调用;
    今早又发现其实文件也不用每次都关闭,改用“记录文件”,只要seek回去就可以修改。
    谢谢大家,实在不好意思。