54 lines
2.5 KiB
MQL5
54 lines
2.5 KiB
MQL5
|
//+------------------------------------------------------------------+
|
||
|
//| StringSymbols.mq5 |
|
||
|
//| Copyright 2021, MetaQuotes Ltd. |
|
||
|
//| https://www.mql5.com |
|
||
|
//+------------------------------------------------------------------+
|
||
|
|
||
|
#define PRT(A) Print(#A, "='", (A), "'")
|
||
|
|
||
|
//+------------------------------------------------------------------+
|
||
|
//| Script program start function |
|
||
|
//+------------------------------------------------------------------+
|
||
|
void OnStart()
|
||
|
{
|
||
|
string numbers = "0123456789";
|
||
|
PRT(numbers);
|
||
|
PRT(StringSetCharacter(numbers, 7, 0)); // truncate at 7
|
||
|
PRT(numbers); // 0123456
|
||
|
PRT(StringSetCharacter(numbers, StringLen(numbers), '*')); // add '*'
|
||
|
PRT(numbers); // 0123456*
|
||
|
|
||
|
PRT(StringGetCharacter(numbers, 5)); // 53 = code of '5'
|
||
|
PRT(numbers[5]); // 53 as well
|
||
|
|
||
|
PRT(CharToString(0xA9)); // "©"
|
||
|
PRT(CharToString(0xE6)); // "æ", "ж", or other glyph
|
||
|
// depending from Windows locale
|
||
|
PRT(ShortToString(0x3A3)); // "Σ"
|
||
|
PRT(ShortToString('Σ')); // "Σ"
|
||
|
|
||
|
ushort array1[], array2[]; // dynamic arrays
|
||
|
ushort text[5]; // fixed array
|
||
|
string alphabet = "ABCDEАБВГД";
|
||
|
// copy including terminal '0'
|
||
|
PRT(StringToShortArray(alphabet, array1)); // 11
|
||
|
ArrayPrint(array1); // 65 66 67 68 69 1040 1041 1042 1043 1044 0
|
||
|
// copy excluding terminal '0'
|
||
|
PRT(StringToShortArray(alphabet, array2, 0, StringLen(alphabet))); // 10
|
||
|
ArrayPrint(array2); // 65 66 67 68 69 1040 1041 1042 1043 1044
|
||
|
// copy to a fixed size array
|
||
|
PRT(StringToShortArray(alphabet, text)); // 5
|
||
|
ArrayPrint(text); // 65 66 67 68 69
|
||
|
// copy to a position beyond previous array size
|
||
|
// (elements [11-19] will contain random data)
|
||
|
PRT(StringToShortArray(alphabet, array2, 20)); // 11
|
||
|
ArrayPrint(array2);
|
||
|
/*
|
||
|
[ 0] 65 66 67 68 69 1040 1041 1042 1043 1044 0 0 0 0 0 14245
|
||
|
[16] 15102 37754 48617 54228 65 66 67 68 69 1040 1041 1042 1043 1044 0
|
||
|
*/
|
||
|
|
||
|
string s = ShortArrayToString(array2, 0, 30);
|
||
|
PRT(s); // 'ABCDEАБВГД', can have trailing random symbols
|
||
|
}
|
||
|
//+------------------------------------------------------------------+
|