使用 MQL4 创建文本文件
Creating textfile with 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"。同样的错误。
有人可以帮助我吗?
谢谢
如果您调用文件 string filename="A"+"\B\"+"teste2.txt";
,它将被写入 TerminalInfoString(TERMINAL_DATA_PATH)
\MQL4\Files\A\B\ 文件夹。当然你不能在文件名中使用禁止符号,并且禁止使用完整路径(C:\Users\User_NAME\AppData...)中的“:\”
该文件默认写在.../MQL4/Files,所以只需编写该代码即可(它会创建一个名为 teste2.txt 的文件,其中将测试写在 .../MQL4/Files) :
void OnStart()
{
int filehandle = FileOpen("teste2.txt",FILE_WRITE|FILE_TXT);
FileWriteString(filehandle,"teste");
FileClose(filehandle);
}
当然,您需要检查 return FileX 函数(FileOpen、fileWrite、FileClose 等)
首先,您需要检查是否有文件。
//+------------------------------------------------------------------+
//| 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");
}
}
//+------------------------------------------------------------------+
我正在尝试使用 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"。同样的错误。
有人可以帮助我吗?
谢谢
如果您调用文件 string filename="A"+"\B\"+"teste2.txt";
,它将被写入 TerminalInfoString(TERMINAL_DATA_PATH)
\MQL4\Files\A\B\ 文件夹。当然你不能在文件名中使用禁止符号,并且禁止使用完整路径(C:\Users\User_NAME\AppData...)中的“:\”
该文件默认写在.../MQL4/Files,所以只需编写该代码即可(它会创建一个名为 teste2.txt 的文件,其中将测试写在 .../MQL4/Files) :
void OnStart()
{
int filehandle = FileOpen("teste2.txt",FILE_WRITE|FILE_TXT);
FileWriteString(filehandle,"teste");
FileClose(filehandle);
}
当然,您需要检查 return FileX 函数(FileOpen、fileWrite、FileClose 等)
首先,您需要检查是否有文件。
//+------------------------------------------------------------------+
//| 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");
}
}
//+------------------------------------------------------------------+