Создание текстового файла на MQL4
Я пытаюсь создать текстовый файл с MQL4. Нет успеха Это просто не работает. Очень простой скрипт:
void OnStart() {
string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
string filename=terminal_data_path+"\\MQL4\\Files\\"+"teste2.txt";
int filehandle = FileOpen(filename,FILE_WRITE|FILE_TXT);
FileWriteString(filehandle,"teste");
FileClose(filehandle);
}
Вызывает ошибку 5002. ОК, файл не существует. Я думал, что скрипт создаст файл.
Итак, я решил создать блок "teste2.txt" с блокнотом в папке. Та же ошибка.
Кто-нибудь может мне помочь?
Спасибо
2 ответа
Файл по умолчанию записывается в.../MQL4/Files, поэтому работает только запись этого кода (создается файл с именем teste2.txt, в котором записан teste в.../MQL4/Files):
void OnStart()
{
int filehandle = FileOpen("teste2.txt",FILE_WRITE|FILE_TXT);
FileWriteString(filehandle,"teste");
FileClose(filehandle);
}
Конечно, вам нужно будет проверить возврат функций FileX (FileOpen, fileWrite, FileClose и т. Д.)
Если вы называете свой файл string filename="A"+"\\B\\"+"teste2.txt";
это будет записано в TerminalInfoString(TERMINAL_DATA_PATH)
Папки \MQL4\Files\A\B\. Конечно, вы не можете использовать запрещенные символы в имени файла, а ":\" из полного пути (C:\Users\User_NAME\AppData...) запрещено
Во-первых, вам нужно проверить, есть ли файл.
//+------------------------------------------------------------------+
//| FileIsExist.mq4 |
//| Copyright 2019, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
string filename = "teste2.txt";
int fileHandle ;
if(FileIsExist(filename,0))
{
Print("Specified File Has");
fileHandle = FileOpen(filename , FILE_WRITE|FILE_TXT);
FileWriteString(fileHandle,"teste");
FileClose(fileHandle);
Print("Write to Existing File Completed");
}else
{
Print("File Not Available, Regenerating....." );
fileHandle = FileOpen(filename , FILE_READ|FILE_WRITE|FILE_TXT);
FileWriteString(fileHandle,"Writing to Newly Created File Completed - teste \n");
FileClose(fileHandle);
Print("Writing to Newly Created File Completed");
}
}
//+------------------------------------------------------------------+