53 lines
1.8 KiB
MQL5
53 lines
1.8 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| MqlParamStringer.mqh |
|
|
//| Copyright 2021, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Convert MqlParam array into string |
|
|
//+------------------------------------------------------------------+
|
|
class MqlParamStringer
|
|
{
|
|
public:
|
|
static string stringify(const MqlParam ¶m)
|
|
{
|
|
switch(param.type)
|
|
{
|
|
case TYPE_BOOL:
|
|
// return param.integer_value ? "true" : "false";
|
|
case TYPE_CHAR:
|
|
case TYPE_UCHAR:
|
|
// return CharToString((uchar)param.integer_value);
|
|
case TYPE_SHORT:
|
|
case TYPE_USHORT:
|
|
// return ShortToString((ushort)param.integer_value);
|
|
case TYPE_DATETIME:
|
|
// return TimeToString(param.integer_value);
|
|
case TYPE_COLOR:
|
|
case TYPE_INT:
|
|
case TYPE_UINT:
|
|
case TYPE_LONG:
|
|
case TYPE_ULONG:
|
|
return IntegerToString(param.integer_value);
|
|
case TYPE_FLOAT:
|
|
case TYPE_DOUBLE:
|
|
return (string)(float)param.double_value;
|
|
case TYPE_STRING:
|
|
return param.string_value;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
static string stringify(const MqlParam ¶ms[])
|
|
{
|
|
string result = "";
|
|
const int p = ArraySize(params);
|
|
for(int i = 0; i < p; ++i)
|
|
{
|
|
result += stringify(params[i]) + (i < p - 1 ? "," : "");
|
|
}
|
|
return result;
|
|
}
|
|
};
|
|
//+------------------------------------------------------------------+
|