Expert Advisors • Indicators • Scripts • Libraries

MQL.RobotFX.org is the biggest collection of MetaTrader expert advisors (MT5 & MT4), indicators, scripts and libraries that can be used to improve trading results, minimize risks or simply automate trading tasks

MetaTrader 5 Libraries | CFileSet

MetaTrader Experts, Indicators, Scripts and Libraries

CClock - Extend of CFile class to work with the .set 

Installation

  • Put FileSet.mqh into your Include\Files folder
  • Put Test.set into your Files\ folder
  • Put FileSet Test.mqh into your Scripts folder
  • Use one of the samples that shows the usage

Inputs

  • FileName : the filename of the .set file
  //--- methods for working with files     int               Open(const string file_name,const int open_flags);     //--- methods of access to protected data     int               Count(void);     bool              ContainsKey(string key);     //--- methods to access data     template<typename TValue>     bool              TryGetValue(const string key, TValue &value);     bool              TryGetValue(const string key, string &value);  

Usage

#include <Files\FileSet.mqh>    CFileSet FileSet;  //+------------------------------------------------------------------+  //| Script program start function                                    |  //+------------------------------------------------------------------+  void OnStart()    {  //---     FileSet.Open("Test.set",FILE_READ|FILE_SHARE_READ);     char test_char;     if(FileSet.TryGetValue("InpTestChar",test_char))        Print(test_char);     short test_short;     if(FileSet.TryGetValue("InpTestShort",test_short))        Print(test_short);     int test_int;     if(FileSet.TryGetValue("InpTestInteger",test_int))        Print(test_int);     long test_long;     if(FileSet.TryGetValue("InpTestLong",test_long))        Print(test_long);     float test_float;     if(FileSet.TryGetValue("InpTestFloat",test_float))        Print(test_float);     double test_double;     if(FileSet.TryGetValue("InpTestDouble",test_double))        Print(test_double);     string test_string;     if(FileSet.TryGetValue("InpTestString",test_string))        Print(test_string);     bool test_bool;     if(FileSet.TryGetValue("InpTestBool",test_bool))        Print(test_bool);     datetime test_datetime;     if(FileSet.TryGetValue("InpTestDatetime",test_datetime))        Print(TimeToString(test_datetime,TIME_DATE|TIME_SECONDS));     color test_color;     if(FileSet.TryGetValue("InpTestColor",test_color))        Print(ColorToString(test_color,true));     ENUM_TEST test_enum;     if(FileSet.TryGetValue("InpTestEnum",test_enum))        Print(EnumToString(test_enum));     FileSet.Close();    }  //+------------------------------------------------------------------+    It should show the below result with the sample file (Test.set)    2021.05.31 05:09:27.546 FileSet Test (EURUSD,H1)        97  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        32767  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        2147483647  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        9223372036854775807  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        1.00001  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        2.225073858507201e-308  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        This is InpTestString  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        false  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        2000.01.01 00:00:00  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        clrBlack  2021.05.31 05:09:27.548 FileSet Test (EURUSD,H1)        TEST3

34962