用 TFileStream 对象, 打开时指定 OpenMode

解决方案 »

  1.   

    用共享的模式还是无法写入成功:
    Stream: TStream;
    第一个按钮:
    procedure TForm1.Button4Click(Sender: TObject);begin
      Stream := TFileStream.Create('d:\a.fac', fmShareCompat );
      try
    //    LoadFromStream(Stream);
      finally
       // Stream.Free;
      end;end;
    第二个按钮:
    var
      x:THandle;
      s:string;
    begin
      x:=FileOpen('d:\a.fac', fmOpenWrite);;
      s:='dfabcdefg'+chr(9)+'ac';
      FileWrite(x,s[1],Length(s));
      FileClose(x);
    end;
    第三个按钮:
    procedure TForm1.Button6Click(Sender: TObject);
    begin
      Stream.Free;
    end;
    点第一个按钮后,再点第二个按钮。再点第三个按钮。,再查看文件,数据还是没有写入。
      

  2.   

    应该不能几个人同时写一个文件吧,看office文件共享操作模式都是这样
      

  3.   

    这是因为 你打开的文件模式有不正确。 
    如果是使用TFileStream;var
     fs: TFileStream;
    begin
      //打开1.txt,本程序可读可写, 其他程序只能写, 不能读。
      fs := TFileStream.Create('1.txt', fmOpenReadWrite or fmShareDenyRead); 
      try
        //......
      finally
        fs.Free;
      end;
    end
      

  4.   

    var
      Af:file;
      p:string;
      buff:TBytes;
    begin  AssignFile(Af,'d:\a.fac');二进制文件如何追加写入?
      

  5.   

    Var
       F:Textfile;
    Begin
        AssignFile(F, filePath);
        Append(F);
        Writeln(F, Str);
        Closefile(F);
    end;//这种方法,我一直在用没有楼主所说的错误啊。
      

  6.   

    如果用TextFile肯定是无法,一边读,另一个写。用file,可以解决。