无法将文件读入结构MQL5 MT5

时间:2018-05-28 06:32:04

标签: c# mql5 metatrader5

我正在尝试将文件读入结构,但由于编译错误而失败。看看我尝试了什么:

struct file_row_struct
{
   datetime file_time;
   string file_range_green;
   string file_range_red;
   double file_dist_green_red;
   double file_slope_green;
   double file_slope_red;
   string file_prev_color;
   string file_current_color;   
}filerow[];

int size = 1;
FileReader = FileOpen(file_read_path,FILE_READ|FILE_CSV,','); 
   if(FileReader != INVALID_HANDLE)
   {
   //while(!FileIsEnding(FileReader))
   //   linecount++;
   while(!FileIsEnding(FileReader))
      {
         FileReadStruct(FileReader,filerow,size); 
         size++; 

      }   
   Print("File Opened successfully");
   //PrintFormat("File path: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
   FileClose(FileReader);
   }
   else Print("Not Successful in opening file:  %s  ", GetLastError());

示例文件的要点位于:Sample data

我遇到的编译错误如下:

'filerow' - structures containing objects are not allowed   NeuralExpert.mq5    108 36

请告诉我我的错误。我的猜测是结构中存在字符串成员函数的可用性,因此它不允许。

1 个答案:

答案 0 :(得分:1)

结构是MQL中的简单类型。这意味着你可以在其中包含各种类型的整数和浮点值(任何转换为​​ulong和double的值)以及其他一些值。这也意味着你不能拥有字符串和其他结构。如果你在结构中有字符串 - 你不能通过引用和许多其他问题传递(所以最好说结构中不支持复杂类型,你仍然可以拥有它们,但是你有责任正确地做所有事情。) /> 由于您无法通过引用传递结构,因此无法使用total 该怎么做 - 我建议使用FileReadStruct()课程和CObject-based来代替CArrayObj。{/ p>

filerow[]