我正在尝试将文件读入结构,但由于编译错误而失败。看看我尝试了什么:
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
请告诉我我的错误。我的猜测是结构中存在字符串成员函数的可用性,因此它不允许。
答案 0 :(得分:1)
结构是MQL中的简单类型。这意味着你可以在其中包含各种类型的整数和浮点值(任何转换为ulong和double的值)以及其他一些值。这也意味着你不能拥有字符串和其他结构。如果你在结构中有字符串 - 你不能通过引用和许多其他问题传递(所以最好说结构中不支持复杂类型,你仍然可以拥有它们,但是你有责任正确地做所有事情。) />
由于您无法通过引用传递结构,因此无法使用total
该怎么做 - 我建议使用FileReadStruct()
课程和CObject-based
来代替CArrayObj
。{/ p>
filerow[]