MQLArticles/Utils/EnumsStr/Main.mqh

125 lines
4.4 KiB
MQL5
Raw Permalink Normal View History

2026-04-08 14:05:44 -05:00
//+------------------------------------------------------------------+
//| 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
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
2026-04-09 15:46:22 -05:00
#include "..\\Dict\\Main.mqh"
2026-04-08 14:05:44 -05:00
//+------------------------------------------------------------------+
//| Registro de ENUMS a STR |
//+------------------------------------------------------------------+
class CEnumReg
{
public:
CEnumReg(void) {}
~CEnumReg(void) {}
//---
2026-04-09 15:46:22 -05:00
static CDict s_dict;
2026-04-08 14:05:44 -05:00
//---
template <typename TEnumType>
static __forceinline TEnumType GetValue(const string& v, const TEnumType default_value)
{
static int val;
2026-04-09 15:46:22 -05:00
return s_dict.TryGetAs<int>(v, val) ? TEnumType(val) : default_value;
2026-04-08 14:05:44 -05:00
}
//---
template <typename TEnumType>
static __forceinline TEnumType GetValueNoRef(const string v, const TEnumType default_value)
{
static int val;
2026-04-09 15:46:22 -05:00
return s_dict.TryGetAs<int>(v, val) ? TEnumType(val) : default_value;
2026-04-08 14:05:44 -05:00
}
};
//+------------------------------------------------------------------+
2026-04-09 15:46:22 -05:00
CDict CEnumReg::s_dict;
2026-04-08 14:05:44 -05:00
//+------------------------------------------------------------------+
2026-04-09 15:46:22 -05:00
#define MQLARTICLES_ENUMREG_REG(A) const bool g_emdsf_##A = CEnumReg::s_dict.SetV(#A,int(A));
2026-04-10 15:42:25 -05:00
// 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));
2026-04-09 14:49:38 -05:00
//--- WRONG_VLAUE
MQLARTICLES_ENUMREG_REG(WRONG_VALUE)
2026-04-09 21:48:03 -05:00
//--- 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)
2026-04-09 14:49:38 -05:00
2026-04-08 14:05:44 -05:00
//--- 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