两个程序(MQL5和c++)可以同时访问一个文本文件吗?

kmbjn2e3  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(137)

我试图用MQL5构建一个Maven顾问,它实际上有两个部分:
第一部分是一个c代码,它产生命令(买,卖)并将其写入文本文件。第二部分是MQL5代码,它旨在打开提到的文本文件,从中读取命令并执行它。我的问题是,由于他们必须几乎同时访问文本文件,有时其中一个试图打开文本文件,而另一个仍在使用它并且没有关闭它。在这些点上,程序返回错误,因为一个部分不能打开文本文件并且一切停止。
我的问题是如何解决这个问题?MQL5可以读取命令行吗?这样我就可以打印命令行中的命令并让MQL5读取它们?或者有什么方法可以解决这个同时访问的问题吗?
C
程序会不断检查文本文件是否被编辑。一旦文本文件被编辑,它会打开它并从中读取数据。问题是,数据几乎每秒都会被不断写入文本文件。因此,在MQL程序试图在文本文件中写入新数据的过程中,C++程序仍会从文件中阅读旧数据。

kd3sttzy

kd3sttzy1#

尽管我个人认为c++已经过时了,但我可能错了。
我个人要求C#和mql 5之间做些什么,也可以放到不同的mql 5 EA中一起交流。
对于EA之间的通信,GlobalVariables将非常好!

**回到你的问题:**你可以使用一个简单的技巧。创建一个文件来锁定你的Textfile.txt。

解释:C将检查是否存在一个名为myMQL5.lck的文件如果这个文件存在,C将每毫秒检查一次,直到它不存在为止.然后C创建一个名为myC ++ .lck的文件,C打开writer.
如果c写完了,它会删除文件myC ++ .lck。
MQL 5端也是如此...
这就是我的解决办法。但我永远不会每一秒钟都写...只是为了防止错误。
另一种工作方式是:从c
创建出每次一个新的文件与时间戳结束。如果MQL 5读取一个文件可以直接删除这一个结束。
使用下一个文件执行下一个循环...
只是一些想法...如果我的答案给予你正确的方向,请标记为“已解决的答案”

相关问题