下载MetaTrader 5
MQL5参考文件函数FileReadString 

FileReadString

函数从文件指标当前位置读取字符串。

string  FileReadString(
   int  file_handle,     // 文件句柄
   int  length=-1        // 字符串长度
   );

参量

file_handle

[in]  通过 FileOpen()返回的文件描述符。

length=-1

[in]  读取的字符号。

返回值

阅读行(字符串)。

注释

当从二倍文件阅读时,字符串的长度阅读需要指定。从txt文件中不要求阅读字符串长度,字符串从当前位置填满 "\r\n"字节,当从csv文件阅读时,也不要求字符串长度,字符串从当前位置直到最近的定界符或者到文本字符串末尾字节开始阅读。

如果文件使用 FILE_ANSI 标记, 打开,线路阅读转换到同一码。

示例 (执行FileWriteInteger函数示例后获得的文件在这里使用)

//--- 启动脚本时显示输入参数的窗口
#property script_show_inputs
//--- 读取数据的参数
input string InpFileName="Trend.bin"// 文件名称
input string InpDirectoryName="Data"// 目录名称
//+------------------------------------------------------------------+
//| 脚本程序启动函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 打开文件
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s file is available for reading",InpFileName);
      PrintFormat("File path: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- 附加变量
      int    str_size;
      string str;
      //--- 读取文件数据
      while(!FileIsEnding(file_handle))
        {
         //--- 找出多少交易品种用于编写时间
         str_size=FileReadInteger(file_handle,INT_VALUE);
         //--- 阅读字符串
         str=FileReadString(file_handle,str_size);
         //--- 打印字符串
         PrintFormat(str);
        }
      //--- 关闭文件
      FileClose(file_handle);
      PrintFormat("Data is read, %s file is closed",InpFileName);
     }
   else
      PrintFormat("Failed to open %s file, Error code = %d",InpFileName,GetLastError());
  }

另见

字符串类型, 数据转换, FileWriteInteger


更新: 2015.12.03