尝试读取文件时出现 MQL4 错误 5004 和 5002

标签 mql4

我正在使用 MQL4 进行编码来读取文件。当我定义文件名并将文件放在指定位置时,它显示错误 5004。但是当我定义路径时,它显示 5002。我去过 MetaTrader 论坛,发现了这个 ( https://www.mql5.com/en/forum/7049 ) 线程。但还是没有解决。我在这里错过了什么吗?

string filename = TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL4\\Files\\output.txt";
   Print(filename);
   ResetLastError();
   int file_handle=FileOpen("out.txt", FILE_READ|FILE_TXT);
   //int file_handle=FileOpen(filename, FILE_TXT|FILE_READ);
   //Print(file_handle);
   string up, down, sideway;
   up = down = sideway = 0;
   if (file_handle!=INVALID_HANDLE){
      Print("read");
      up=FileReadString(file_handle);
      down = FileReadString(file_handle);
      sideway = FileReadString(file_handle);
   } else{
      Print("file open error: ", GetLastError());
   } FileClose(file_handle);

最佳答案

int file_handle=FileOpen("out.txt", FILE_READ|FILE_TXT); 表示您的文件夹中有文件“out.txt”,例如C:\Users\User1\AppData\Roaming\MetaQuotes\Terminal\999999DEA9630EA94D0715D755974F1D\MQL4\Files\out.txt。如果您在测试器中尝试,路径是 C:\Users\User1\AppData\Roaming\MetaQuotes\Terminal\999999DEA9630EA94D0715D755974F1D\tester\files\out.txt 确保您拥有用于解决 5002 错误的文件。 可能会发生这样的情况:您成功打开了一次文件,但在编写代码时未能关闭。现在您无法打开它。一种方法是关闭 MT4(它将关闭所有打开的文件),另一种方法是以 SHARE 模式打开文件。 int file_handle=FileOpen("out.txt", FILE_READ|FILE_SHARE_READ|FILE_TXT);

关于尝试读取文件时出现 MQL4 错误 5004 和 5002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492544/

相关文章:

c# - 如何正确地将结构数组从 MQL4 传递到 C# DLL 库

c++ - 将实时外汇报价从 MT4 导入到 C++

mql4 - 在 MetaTrader4 EA 的 OrderSend() 中设置止损和止盈的正确方法是什么?

mql4 - 如何使用 MQL4 创建详细的报告?

mql4 - 算法交易 : How to incorporate this type of trailing stop?

python - 使用自定义指标和 C++ DLL 时出现访问冲突读取错误和 MT4 崩溃

mql4 - 如何在 MetaTrader4 终端中获取当前毫秒数?

mql4 - 用于回测的慢速指标的包装

matlab - 将 MQL4 ibands() 转换为 Matlab

java - 如何将 Java 连接到 MQL5(最好使用 ZeroMQ)