73 lines
1.7 KiB
MQL5
73 lines
1.7 KiB
MQL5
|
#ifndef FRAMEWORK_EXT_STRING_MQH
|
||
|
#define FRAMEWORK_EXT_STRING_MQH
|
||
|
|
||
|
#define EXT_STRING_EMPTY ""
|
||
|
|
||
|
#define dtos(value) DoubleToString(value, layer_account::digits())
|
||
|
#define ttos(value) TimeToString( value, TIME_DATE | TIME_MINUTES | TIME_SECONDS )
|
||
|
#define itos(value) IntegerToString(value)
|
||
|
|
||
|
#define ext_string_equals( first, second, check_case ) (StringCompare ( first, second, check_case ) == 0)
|
||
|
|
||
|
class ext_string {
|
||
|
public:
|
||
|
static string replace ( string value, string find, string replaced ) {
|
||
|
StringReplace ( value, find, replaced );
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
static double truncate_real_part ( double value, int count ) {
|
||
|
string buffer = DoubleToString ( value );
|
||
|
int length = StringLen ( buffer );
|
||
|
int index_of = StringFind ( buffer, ".", 0 );
|
||
|
|
||
|
if ( length - index_of + 1 <= count ) {
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
buffer = StringSubstr ( buffer, 0, index_of + 1 + count );
|
||
|
return StringToDouble ( buffer );
|
||
|
}
|
||
|
|
||
|
static string get_hash ( string value, ENUM_CRYPT_METHOD metod=CRYPT_HASH_SHA256 ) {
|
||
|
uchar data[];
|
||
|
StringToCharArray ( value, data );
|
||
|
ArrayResize ( data, ArraySize ( data ) - 1 );
|
||
|
|
||
|
uchar key[1] = {0};
|
||
|
|
||
|
uchar result[];
|
||
|
CryptEncode ( metod, data, key, result );
|
||
|
|
||
|
string resultStr = EXT_STRING_EMPTY;
|
||
|
|
||
|
for ( int i = 0; i < ArraySize ( result ); i++ ) {
|
||
|
resultStr += StringFormat ( "%02x", result[i] );
|
||
|
}
|
||
|
|
||
|
return resultStr;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
class str_builder {
|
||
|
private:
|
||
|
string source;
|
||
|
public:
|
||
|
str_builder() {
|
||
|
source = EXT_STRING_EMPTY;
|
||
|
}
|
||
|
|
||
|
void append ( string value ) {
|
||
|
source += value;
|
||
|
}
|
||
|
|
||
|
void append_line ( string value ) {
|
||
|
source += value + "\r\n";
|
||
|
}
|
||
|
|
||
|
string to_str() {
|
||
|
return source;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif
|