MQLArticles/Utils/EnumsStr/Main.mqh
Nique_372 2246c0cf65
2026-04-10 15:42:25 -05:00

125 líneas
4,4 KiB
MQL5

//+------------------------------------------------------------------+
//| Main.mqh |
//| Copyright 2026,Niquel Mendoza. |
//| https://www.mql5.com/en/users/nique_372 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026,Niquel Mendoza."
#property link "https://www.mql5.com/en/users/nique_372"
#property strict
#ifndef MQLARTICLES_ENUMSTR_MAIN_MQH
#define MQLARTICLES_ENUMSTR_MAIN_MQH
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#include "..\\Dict\\Main.mqh"
//+------------------------------------------------------------------+
//| Registro de ENUMS a STR |
//+------------------------------------------------------------------+
class CEnumReg
{
public:
CEnumReg(void) {}
~CEnumReg(void) {}
//---
static CDict s_dict;
//---
template <typename TEnumType>
static __forceinline TEnumType GetValue(const string& v, const TEnumType default_value)
{
static int val;
return s_dict.TryGetAs<int>(v, val) ? TEnumType(val) : default_value;
}
//---
template <typename TEnumType>
static __forceinline TEnumType GetValueNoRef(const string v, const TEnumType default_value)
{
static int val;
return s_dict.TryGetAs<int>(v, val) ? TEnumType(val) : default_value;
}
};
//+------------------------------------------------------------------+
CDict CEnumReg::s_dict;
//+------------------------------------------------------------------+
#define MQLARTICLES_ENUMREG_REG(A) const bool g_emdsf_##A = CEnumReg::s_dict.SetV(#A,int(A));
// a = "user" | v = valor del enuym
#define MQLARTICLES_ENUMREG_REG_CTS(A, V) const bool g_emdsf_##V = CEnumReg::s_dict.SetV(A,int(V));
//--- WRONG_VLAUE
MQLARTICLES_ENUMREG_REG(WRONG_VALUE)
//--- Banderas de archivos
MQLARTICLES_ENUMREG_REG(FILE_READ)
MQLARTICLES_ENUMREG_REG(FILE_WRITE)
MQLARTICLES_ENUMREG_REG(FILE_BIN)
MQLARTICLES_ENUMREG_REG(FILE_CSV)
MQLARTICLES_ENUMREG_REG(FILE_TXT)
MQLARTICLES_ENUMREG_REG(FILE_UNICODE)
MQLARTICLES_ENUMREG_REG(FILE_SHARE_READ)
MQLARTICLES_ENUMREG_REG(FILE_SHARE_WRITE)
MQLARTICLES_ENUMREG_REG(FILE_REWRITE)
MQLARTICLES_ENUMREG_REG(FILE_COMMON)
//--- FILE_INTEGER
MQLARTICLES_ENUMREG_REG(FILE_CREATE_DATE)
MQLARTICLES_ENUMREG_REG(FILE_MODIFY_DATE)
MQLARTICLES_ENUMREG_REG(FILE_ACCESS_DATE)
MQLARTICLES_ENUMREG_REG(FILE_SIZE)
MQLARTICLES_ENUMREG_REG(FILE_POSITION)
MQLARTICLES_ENUMREG_REG(FILE_END)
MQLARTICLES_ENUMREG_REG(FILE_LINE_END)
MQLARTICLES_ENUMREG_REG(FILE_IS_COMMON)
MQLARTICLES_ENUMREG_REG(FILE_IS_TEXT)
MQLARTICLES_ENUMREG_REG(FILE_IS_BINARY)
MQLARTICLES_ENUMREG_REG(FILE_IS_CSV)
MQLARTICLES_ENUMREG_REG(FILE_IS_ANSI)
MQLARTICLES_ENUMREG_REG(FILE_IS_READABLE)
MQLARTICLES_ENUMREG_REG(FILE_IS_WRITABLE)
//--- PERIOD
MQLARTICLES_ENUMREG_REG(_Period)
// period current no esta soporta en su lugar _Period
MQLARTICLES_ENUMREG_REG(PERIOD_M1)
MQLARTICLES_ENUMREG_REG(PERIOD_M2)
MQLARTICLES_ENUMREG_REG(PERIOD_M3)
MQLARTICLES_ENUMREG_REG(PERIOD_M4)
MQLARTICLES_ENUMREG_REG(PERIOD_M5)
MQLARTICLES_ENUMREG_REG(PERIOD_M6)
MQLARTICLES_ENUMREG_REG(PERIOD_M10)
MQLARTICLES_ENUMREG_REG(PERIOD_M12)
MQLARTICLES_ENUMREG_REG(PERIOD_M15)
MQLARTICLES_ENUMREG_REG(PERIOD_M20)
MQLARTICLES_ENUMREG_REG(PERIOD_M30)
MQLARTICLES_ENUMREG_REG(PERIOD_H1)
MQLARTICLES_ENUMREG_REG(PERIOD_H2)
MQLARTICLES_ENUMREG_REG(PERIOD_H3)
MQLARTICLES_ENUMREG_REG(PERIOD_H4)
MQLARTICLES_ENUMREG_REG(PERIOD_H6)
MQLARTICLES_ENUMREG_REG(PERIOD_H8)
MQLARTICLES_ENUMREG_REG(PERIOD_H12)
MQLARTICLES_ENUMREG_REG(PERIOD_D1)
MQLARTICLES_ENUMREG_REG(PERIOD_W1)
MQLARTICLES_ENUMREG_REG(PERIOD_MN1)
//--- Type
MQLARTICLES_ENUMREG_REG(TYPE_BOOL)
MQLARTICLES_ENUMREG_REG(TYPE_CHAR)
MQLARTICLES_ENUMREG_REG(TYPE_UCHAR)
MQLARTICLES_ENUMREG_REG(TYPE_SHORT)
MQLARTICLES_ENUMREG_REG(TYPE_USHORT)
MQLARTICLES_ENUMREG_REG(TYPE_COLOR)
MQLARTICLES_ENUMREG_REG(TYPE_INT)
MQLARTICLES_ENUMREG_REG(TYPE_UINT)
MQLARTICLES_ENUMREG_REG(TYPE_DATETIME)
MQLARTICLES_ENUMREG_REG(TYPE_LONG)
MQLARTICLES_ENUMREG_REG(TYPE_ULONG)
MQLARTICLES_ENUMREG_REG(TYPE_FLOAT)
MQLARTICLES_ENUMREG_REG(TYPE_DOUBLE)
MQLARTICLES_ENUMREG_REG(TYPE_STRING)
//+------------------------------------------------------------------+
#endif // MQLARTICLES_ENUMSTR_MAIN_MQH