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