Python 被另一个程序写入时MQL5 readfile
我得到了一个使用两种不同语言的程序,MQL5和Python。作为2脚本之间的桥梁,我使用2文本文件。MQL5将写入一个文件。Python将待机并定期检查所述文件是否存在。如果确实存在,Python将先读取该文件,然后再编写另一个文件,然后再删除已读取的文件。写入文件后,MQL5将进入待机状态,并定期检查Python是否已生成回复。如果回复文件名存在,它将读取所述文件 不幸的是,MQL5在Python编写应答文件时一直试图读取应答文件。它会导致MQL5抛出错误,如果我强制它读取,它将读取空白文件。有没有办法避免这种情况?是否仍要检测文件是否已被MQL5中的另一个程序修改完毕 下面是我用来尝试处理这个问题但没有效果的代码Python 被另一个程序写入时MQL5 readfile,python,file,read-write,mql5,Python,File,Read Write,Mql5,我得到了一个使用两种不同语言的程序,MQL5和Python。作为2脚本之间的桥梁,我使用2文本文件。MQL5将写入一个文件。Python将待机并定期检查所述文件是否存在。如果确实存在,Python将先读取该文件,然后再编写另一个文件,然后再删除已读取的文件。写入文件后,MQL5将进入待机状态,并定期检查Python是否已生成回复。如果回复文件名存在,它将读取所述文件 不幸的是,MQL5在Python编写应答文件时一直试图读取应答文件。它会导致MQL5抛出错误,如果我强制它读取,它将读取空白文件。
while(!FileIsExist("output.txt"))
{
}
if(FileIsExist("output.txt"))
{
ResetLastError();
do
{
int file_handle=FileOpen("output.txt", FILE_READ|FILE_SHARE_READ|FILE_TXT);
}
while(file_handle==5004);
}
我认为你应该从标志中删除
FILE\u SHARE\u READ
。对于共享读取,它将在其他应用程序可以访问时尝试读取某些内容(例如写入)。否则,MQL5将收到一个错误(可能会休眠一段时间?),直到Python脚本关闭并取消阻止该文件。@DanielKniaz刚刚尝试了这个,同样的结果是,while(file_handle==5004)?句柄可能是一个较小的数字,从1或10开始,5004可能是您的错误。因此,在(\u LastError==5004)或直到文件\u句柄时睡眠=无效的\u句柄