我有两个程序都要访问文本文件(文件名不同)可是为什么有时会有一个i/o 32错误
程序停在了reset(f)上
程序最初我使用if not FileExists('c:\TeamName.txt') then FileCreate('c:\TeamName.txt');来判断它是否存在  
还有,我的两个程序同时运行时还会出现file not found!的错误

解决方案 »

  1.   

    那是你用FileCreate打开文件时使用了独占的方式,所以第二个程序没办法打开。访问文本文件一个方便的方法是:
     StrList: TStringList;StrList := TStringList.Create;
    StrList.LoadFromFile('c:\xxx.txt');这样子就完了,不必使用FileCreate。
      

  2.   

    使用 Mutex 互斥元吧, 只用到下面几个函数:
    CreateMutex
    ReleaseMutex
    WaitForSingleObject
    CloseHandle
      

  3.   

    filecreate的返回值是这个新文件的句柄,可以用fileclose关闭这个文件就可以访问了.
    比如
    var
    i: integer
    begin
    i:= filecreate('c:\a.txt');
    fileclose(i);
    end;
    这样就可以允许多个文件同时访问了.
      

  4.   

    FILE NOT FOUND
    也有可能是定义和实际的文件名不一样
      

  5.   

    >>我有两个程序都要访问文本文件(文件名不同)可是为什么有时会有一个i/o 32错误
    我估計你是用了同個 F: File 之類的變量去打開兩個文件, 操作又不對, 才會出現i/o, 要不然, 是獨立的操作, 應該與打開一個兩個文件無關!檢查你的代碼, 可能是打開了, 沒close