注册 登录
编程论坛 Delphi论坛

[求助]多线程打开文件的问题

虫毛毛 发布于 2007-06-12 10:20, 1434 次点击

被搞的头晕脑胀了,跑来求助,期待大家的帮助啊~~~

我这是个delphi的程序,现在delphi里生成一个文件a,然后使用WinExec调用了一个exe程序对该文件a进行了读操作,下面接着又对这个a进行读写操作。总提示我I/O错误,哭,然后在运行exe的后面加了个代码:
fHandle:=FileOpen(fileName,fmShareExclusive );
while fHandle = -1 do
begin
Sleep(100) ;
fHandle := FileOpen(fileName,fmShareExclusive );
end;
FileClose(fHandle);

这个有没有问题啊,为什么加完了以后再对文件操作还是有I/O错误呢~~~

5 回复
#2
anthony6342007-06-12 12:18

这段看不出什么哦,有别的代码么

#3
虫毛毛2007-06-12 13:55
程序是这样的。。。
N行代码。。。
for i=0 to m
begin
。。。。
AssignFile(sFile, ‘x’); 对x进行写操作
Rewrite(sFile);
。。。。
CloseFile(sFile);
。。。。
WinExec( 'a.exe',SW_Hide); 其中a.exe对文件x进行了一些读写操作
end

这样,当运行到a.exe对文件x进行读写操作时,程序又循环回对文件写,就提示I/O错误了。。。
我怎么判断a.exe已经对x的操作结束了呢。。。

请教各位老大。。。谢谢。。。
#4
虫毛毛2007-06-12 13:57
我在WinExec( 'a.exe',SW_Hide); 后面加了一楼的代码,想延迟下时间,可是好像没成功。。。怎么办啊。。。555
#5
anthony6342007-06-12 17:40

看不出来,要不把代码帖全,要么自己检查下文件操作的部分

#6
fish09282007-06-13 07:36

呵呵,是延时那写的有问题~~

[此贴子已经被作者于2007-6-13 10:16:30编辑过]

1