如何从 MQL4 中的 CSV 文件中读取特定的单元格值?

How to read specific cell value from CSV file in MQL4?

我试图从 MQL4 中的 CSV 文件中仅读取一个单元格值,但是,在线文档并未涵盖查找单个单元格值的内容,我搜索了无数线程以寻找解决方法,但 none.

我的代码如下,

  int Handle = FileOpen("/Users/rahulparmeshwar/Documents/Algo 
  /LogisticRegressionOutput.csv",FILE_READ|FILE_CSV,',');
  double Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
  Str = FileReadInteger(Handle,1);
 Alert(Str);
 FileClose(Handle);

CSV文件内容如下

非常感谢任何帮助,谢谢。

先看FileOpen Function

出于安全原因,使用文件在 MQL4 语言中受到严格控制。使用MQL4方式进行文件操作的文件,不能在文件沙箱之外。

这意味着您必须将 csv 文件放在 ...\MQL4\Files 文件夹中。

关于您的代码,使用数组效率更高。然后,您可以使用 [行] [列] 读取特定的单元格值。请记住,数组是从零开始的(您的第一行和第一列引用将是 [0][0])。

string data[1][18]

int Handle=FileOpen("LogisticRegressionOutput.csv",FILE_CSV|FILE_SHARE_READ,",");
if(Handle<1){return(-1);}
int row=0;
ArrayResize(data,18);
while(!FileIsEnding(Handle))
{
   if(row>ArraySize(data)/18-1) {ArrayResize(data,(row+1)*18);}
   for(int i=0; i<=18-1; i++) data[row][i]=FileReadString(Handle);
   row++;
}
FileClose(Handle);
Print(data[0][0]);