关于CreateFile的问题,文件创建后为什么不能使用啊。(200分)

  • 主题发起人 主题发起人 smao
  • 开始时间 开始时间
S

smao

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br>&nbsp; f : TextFile;<br>&nbsp; FileRout : string;<br>begin<br>&nbsp; FileRout := ExtractFilePath(application.ExeName) + 'outPutData.sql';<br>&nbsp; CreateFile(pchar(FileRout),GENERIC_WRITE+GENERIC_READ,FILE_SHARE_WRITE,nil,<br>&nbsp; &nbsp; &nbsp; &nbsp; CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);<br>// &nbsp;FileCreate(FileRout);<br>&nbsp; AssignFile(F,FileRout);<br>&nbsp; Reset(F);<br><br>&nbsp; write(F,'&lt;?');<br>&nbsp; write(F,'123');<br><br>&nbsp; CloseFile(F);<br>end;<br>
 
不好意思,忘记说什么错误了。<br><br>&nbsp;AssignFile(F,FileRout);<br>&nbsp;Reset(F); &nbsp;//---------------这句说错误,提示i/o错误<br><br>
 
把createfile注释掉你根本没有用到它。<br>&nbsp;CreateFile(pchar(FileRout),GENERIC_WRITE+GENERIC_READ,FILE_SHARE_WRITE,nil,<br>&nbsp; &nbsp; &nbsp; &nbsp;CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);<br>
 
hFile:=CreateFile以后,要调用CloseHandle(hFile);再来assignFile()
 
AssignFile是独占模式的,应当先关闭createFile的句柄
 
&nbsp;FileRout := ExtractFilePath(application.ExeName) + 'outPutData.sql';<br>&nbsp; hhd := CreateFile(pchar(FileRout),GENERIC_WRITE+GENERIC_READ,FILE_SHARE_WRITE,nil,<br>&nbsp; &nbsp; &nbsp; &nbsp; CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);<br>&nbsp; CloseHandle(hhd);<br>&nbsp; sleep(100);<br>&nbsp; AssignFile(F,FileRout);<br>&nbsp; Reset(F);<br><br>&nbsp; write(F,'&lt;?');//我改好了,但是这句出错是为什么呢?是不是创建的时候我属性没有设置好?<br>&nbsp; write(F,'123');<br>
 
Append(f);//&lt;--<br>write(F,'&lt;?');//我改好了,但是这句出错是为什么呢?是不是创建的时候我属性没有设置好?<br>write(F,'123');<br>closeFile(f);//记得CloseFile,否则数据将没写入。
 
多人接受答案了。
 
后退
顶部