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

时间:2018-09-25 07:13:14

标签: 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);

1 个答案:

答案 0 :(得分:1)

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);