【问题标题】:Creating textfile with MQL4使用 MQL4 创建文本文件
【发布时间】:2018-12-07 20:46:26
【问题描述】:

我正在尝试使用 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”。同样的错误。

有人可以帮我吗?

谢谢

【问题讨论】:

    标签: mql4 metatrader4 mql


    【解决方案1】:

    该文件默认写在 .../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 等)的返回

    【讨论】:

      【解决方案2】:

      如果您调用您的文件string filename="A"+"\\B\\"+"teste2.txt";,它将被写入TerminalInfoString(TERMINAL_DATA_PATH)\MQL4\Files\A\B\ 文件夹。当然你不能在文件名中使用禁止符号,并且禁止完整路径(C:\Users\User_NAME\AppData...)中的“:\”

      【讨论】:

        【解决方案3】:

        首先,您需要检查是否有文件。

        //+------------------------------------------------------------------+
        //|                                                  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");
                  }
        
          }
        //+------------------------------------------------------------------+
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-21
          • 1970-01-01
          • 1970-01-01
          • 2013-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多