1
0
Ответвление 0
ответвлён от gsus.fx/MQLArticles
MQLArticles/Utils/FA/StringToArray.mqh
Nique_372 7c56fece9e
2026-01-02 10:22:09 -05:00

64 строки
Без EOL
5,4 КиБ
MQL5

//+------------------------------------------------------------------+
//| StringToArray.mqh |
//| Copyright 2025, Niquel Mendoza. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Niquel Mendoza."
#property link "https://www.mql5.com"
#property strict
#ifndef MQLARTICLES_UTILS_FA_STRINGTOARRAY_MQH
#define MQLARTICLES_UTILS_FA_STRINGTOARRAY_MQH
//+------------------------------------------------------------------+
//| Macro para generar funciones dentro del namespace |
//+------------------------------------------------------------------+
class StrTo
{
public:
#define DEFINE_STRING_TO_ARRAY(TYPE, CONVERT_FUNC) \
static bool CstArray(TYPE &array_receptor[], const string &cadena, ushort cadena_separator = ',', bool trim = false) \
{ \
string result[]; \
ResetLastError(); \
int num = StringSplit(cadena, cadena_separator, result); \
if(num == -1) \
return false; \
\
if(ArrayResize(array_receptor, ArraySize(result)) == -1) \
return false; \
\
for(int i = 0; i < ArraySize(array_receptor); i++) \
{ \
if(trim)\
{ \
StringTrimLeft(result[i]); \
StringTrimRight(result[i]); \
} \
array_receptor[i] = CONVERT_FUNC; \
} \
return true; \
}
// Generar funciones sobrecargadas para cada tipo
DEFINE_STRING_TO_ARRAY(string, result[i])
DEFINE_STRING_TO_ARRAY(int, (int)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(long, StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(short, (short)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(char, (char)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(bool, (StringToInteger(result[i]) != 0))
DEFINE_STRING_TO_ARRAY(uint, (uint)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(ulong, (ulong)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(uchar, (uchar)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(ushort, (ushort)StringToInteger(result[i]))
DEFINE_STRING_TO_ARRAY(double, StringToDouble(result[i]))
DEFINE_STRING_TO_ARRAY(float, (float)StringToDouble(result[i]))
DEFINE_STRING_TO_ARRAY(datetime, StringToTime(result[i]))
DEFINE_STRING_TO_ARRAY(color, StringToColor(result[i]))
#undef DEFINE_STRING_TO_ARRAY
};
//+------------------------------------------------------------------+
#endif // MQLARTICLES_UTILS_FA_STRINGTOARRAY_MQH