Ошибка MQL4 5004 и 5002 при попытке прочитать файл - PullRequest
0 голосов
/ 25 сентября 2018

Я пишу на 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 голосов
/ 25 сентября 2018

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

...