Ошибки, баги, вопросы - страница 3040

 
Andrei Trukhanovich:

Так уже давно. mql строки очень не любят нуль символы внутри строки и в литералах, в функциях тоже.

Единственный нормальный способ - переводить в массив три строки с завершающим нулем.

Т.е. такое поведение как сейчас было сделано намеренно несколько лет назад. Причин не знаю.

А какая функция, кроме StringToCharArray неправильно с внутренними нулями работает?

Например StringToShortArray - работает без ошибок

StringCompare раньше неправильно работала, но это уже давно исправили

Что касается StringLen, то

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2019.05.15 13:45

Просто частично исправили ошибки ... почему бы и нет!? На моей памяти StringLen всегда работал правильно (по крайней мере в x32)

 
A100:

Точно не помню, в один прекрасный момент строка с нулем внутри обрезалась до нуля, может stringconcatenate, может и с простыми строковыми операциями.

 

Отличный форум, получил на отправке ответа днем. Ответ само собой потерялся.

Понедельник, середина дня..


 

Несколько терминалов свернуты. При этом каждый терминал выдает алерты в свои алерт-окна - не свернуты.

Как понять, какое алерт-окно соответствует какому терминалу?

 
fxsaber:

Несколько терминалов свернуты. При этом каждый терминал выдает алерты в свои алерт-окна - не свернуты.

Как понять, какое алерт-окно соответствует какому терминалу?

 Про уникальный ID терминала мне ничего не известно, но можно добавить в алерт AccountInfoString(ACCOUNT_COMPANY). Я не думаю, что у кого-либо несколько экземпляров MT5 будут залогинены одновременно в одну и ту же брокерскую компанию, хотя гипотетически такое всё же может быть целесообразно, если необходимо сидеть на разных счетах одного брокера. В таком случае (на худой конец) может сгодиться AccountInfoInteger(ACCOUNT_LOGIN) или AccountInfoString(ACCOUNT_SERVER).

 
x572intraday:

 Про уникальный ID терминала мне ничего не известно, но можно добавить в алерт AccountInfoString(ACCOUNT_COMPANY). Я не думаю, что у кого-либо несколько экземпляров MT5 будут залогинены одновременно в одну и ту же брокерскую компанию, хотя гипотетически такое всё же может быть целесообразно, если необходимо сидеть на разных счетах одного брокера. В таком случае (на худой конец) может сгодиться AccountInfoInteger(ACCOUNT_LOGIN) или AccountInfoString(ACCOUNT_SERVER).

Да, в свои Алерты можно запихать любые данные идентификации. Но вопрос касается общего случая.

 
A100:

А какая функция, кроме StringToCharArray неправильно с внутренними нулями работает?

Например StringToShortArray - работает без ошибок

StringCompare раньше неправильно работала, но это уже давно исправили

Что касается StringLen, то


Вы правы, изменил поведение StringToCharArray, теперь на всю длину строки, а не до первого символа '\0'

 
Ilyas:

Вы правы, изменил поведение StringToCharArray, теперь на всю длину строки, а не до первого символа '\0'

Тогда только одна разница между StringToCharArray и StringToShortArray остается:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2021.05.25 00:16

void OnStart()
{
    string text = "ABC";
    const int start = 0, count = 0;
    uchar array1[]; int n1 = StringToCharArray(  text, array1, start, count );
    short array2[]; int n2 = StringToShortArray( text, array2, start, count );
    Print( n1, ":", n2 );
}

Результат:   4:0

Ожидалось: 0:0

 
A100:
Тогда только одна разница между StringToCharArray и StringToShortArray остается:

Сделал поведение одинаковым.


Дополнительно: в ближайшем будущем, массивы и строки дополнятся методами, например:

str.ToCharArray(char_arr, from_position, symbol_count);
str.Length();

arr.Size();
string str = char_arr.ToString( code_page );

if(!obj_arr.Push( constructor_parameters ))
   CriticalError("failed to add element");

obj_arr.Sort( compare_func_ptr, context );

obj_arr.Select( uint_result_index_array, filter_func_ptr, context );
 
Ilyas:

в ближайшем будущем, массивы и строки дополнятся методами

Все меньше и меньше общего с MQL4...

Причина обращения: