- 显示:
- 1339
- 等级:
- 已发布:
- 2013.10.24 15:26
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
这段脚本打开一个客户端本地文件夹下的文件,并显示它的属性值。客户端的本地文件夹位置包含在 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 Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1618