下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2013.10.24 15:26
脚本

演示_FileGetInteger - MetaTrader 5脚本

| Chinese English Русский Español Deutsch 日本語 Português

显示:
455
等级:
投票: 26

这段脚本打开一个客户端本地文件夹下的文件,并显示它的属性值。客户端的本地文件夹位置包含在 TerminalInfoString() 函数。

PrintFormat("客户端本地文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); 
这段脚本展示使用 FileGetInteger() 函数的第一种变型, 所以它显示它的属性值。对于函数的第二种变型,仅有 5 个第一属性可用。

代码:

//--- 当脚本启动时显示输入参数窗口
#property script_show_inputs
//--- 输入参数
input string InpFileName="data.csv";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string path=InpDirectoryName+"//"+InpFileName;
   long   l=0;
//--- 打开文件
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_CSV);
   if(handle!=INVALID_HANDLE)
     {
      //--- 打印所有的文件属性
      Print(InpFileName," 文件信息:");
      FileInfo(handle,FILE_EXISTS,l,"布尔");
      FileInfo(handle,FILE_CREATE_DATE,l,"日期");
      FileInfo(handle,FILE_MODIFY_DATE,l,"日期");
      FileInfo(handle,FILE_ACCESS_DATE,l,"日期");
      FileInfo(handle,FILE_SIZE,l,"其它");
      FileInfo(handle,FILE_POSITION,l,"其它");
      FileInfo(handle,FILE_END,l,"布尔");
      FileInfo(handle,FILE_IS_COMMON,l,"布尔");
      FileInfo(handle,FILE_IS_TEXT,l,"布尔");
      FileInfo(handle,FILE_IS_BINARY,l,"布尔");
      FileInfo(handle,FILE_IS_CSV,l,"布尔");
      FileInfo(handle,FILE_IS_ANSI,l,"布尔");
      FileInfo(handle,FILE_IS_READABLE,l,"布尔");
      FileInfo(handle,FILE_IS_WRITABLE,l,"布尔");
      //--- 关闭文件
      FileClose(handle);
     }
   else
      PrintFormat("%s 文件不可打开, 错误代码 = %d",InpFileName,GetLastError());
  }
//+------------------------------------------------------------------+
//| display the value of the file property                           |
//+------------------------------------------------------------------+
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
              long l,const string type)
  {
//--- 取属性值
   ResetLastError();
   if((l=FileGetInteger(handle,id))!=-1)
     {
      //--- 按适当格式显示数值
      if(!StringCompare(type,"布尔"))
         Print(EnumToString(id)," = ",l ?"真" : "假");
      if(!StringCompare(type,"日期"))
         Print(EnumToString(id)," = ",(datetime)l);
      if(!StringCompare(type,"其它"))
         Print(EnumToString(id)," = ",l);
     }
   else
      Print("错误, 代码 = ",GetLastError());
  }

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/1618

演示_FileIsEnding 演示_FileIsEnding

这段脚本简单示例如何使用 FileIsEnding() 函数

演示_FileFlush 演示_FileFlush

这段脚本简单示例如何使用 FileFlush() 函数

演示_FileWriteArray 演示_FileWriteArray

这段脚本简单示例如何使用 FileWriteArray() 函数

演示_FileReadArray 演示_FileReadArray

这段脚本简单示例如何使用 FileReadArray() 函数