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

 

Доброго времени суток.

Переставил систему. Поставил с нуля MT5. Как оказалось сменился демо сервер. Сейчас FXCM-MT5Demo01, какой старый раньше был не знаю. Поэтому старый демо-счет не подходит.

 Зарегистрировал новый демо-счет. Раньше если влево историю прокручиваешь она докачивается. На этом сервере вообще никак. Переключая таймфрейм, история не докачивается.

Нет ничего раньше чем 02.10.2012. При тестировании какого-нибудь стандартного советника из комплекта при задании периода в год все равно не докачивается.

Подскажите, как докачать историю или подскажите адрес старого демо-сервера.

ОС Win 7 Макс Rus SP1 x64, стандартный файрвол отключен, стоит Avast бесплатный 7.0.1466 (выключал, включал) MT5 v.5.00 Build 712 (12.10.2012)

При открытии окошка "О программе" в MT5 по Alt+Tab нельзя перейти.

 
Vladon:

в  профиле сайта, он был заполнен и я  его не трогал, потом сегодня работу делал - а планшетка молчит,

думаю что за дела -потом зашел на сайт а там нет моего ид.  

Заполнил по новой, не могу сказать он изменился или нет, помоему цифры те же.  

На данный момент уведомления к вам приходят?
 
PVOID:
На данный момент уведомления к вам приходят?
Да, после того как снова ввел его на сайте.
 

Кто понимает, это правильный результат?

Код:

   ushort Var=1040;
   Alert("1: "+StringFormat("%c",Var));
   
   uchar Var2=192;
   Alert("2: "+StringFormat("%C",Var2));   
   
   Alert("3: "+ShortToString(Var)+" "+CharToString(Var2));

В результате имею:

 

ShortToString(Var) и CharToString(Var2)  правильно отработали, обе отдали русскую "А".

Но почему StringFormat("%C",Var2)  не дает русскую "А"?

В справке написано:

c

int

Символ типа short (Unicode)

C

int

Символ типа char (ANSI)

 

 
Integer:

Но почему StringFormat("%C",Var2) не дает русскую "А"?

Вероятнее всего StringFormat работает с UTF-7, а CharToString c текущей кодовой страницей Windows. Поэтому такой результат. 

Вот например:

uchar ar[1];
ar[0]=192;
Print(CharArrayToString(ar,0,WHOLE_ARRAY,CP_UTF7)," ",CharArrayToString(ar,0,WHOLE_ARRAY,CP_ACP));
 À А

 Вопрос напрашивается, почему в  CharArrayToString есть параметр выбора кодовой страницы а в CharToString его нет?

 
avoitenko:

Вероятнее всего StringFormat работает с UTF-7, по этому такой результат.

Вот например:

 À А

 Вопрос напрашивается, почему в  CharArrayToString есть параметр выбора кодовой страницы а в CharToString её нет?


Похоже так, но ведь в справке написано про ANSI:

C int Символ типа char (ANSI) 

Значит написанное в справке надо понимать как  "C int Символ типа char (ANSI), но все равно из таблицы UTF"? В чем у такого смысл, вот что не ясно.

 
Integer:

Значит написанное в справке надо понимать как  "C int Символ типа char (ANSI), но все равно из таблицы UTF"? В чем у такого смысл, вот что не ясно.

В общем на месте разработчиков я бы подставил в StringFormat для %С текущую кодировку Windows а не UTF-7, 

чтобы результат был идентичен как при вызове CharToString.

 
avoitenko:

В общем на месте разработчиков я бы подставил в StringFormat для %С текущую кодировку Windows а не UTF-7, 

чтобы результат был идентичен как при вызове CharToString.

И я так думал, может баг?
 
Integer:

Кто понимает, это правильный результат?


Мы просто транслируем (с проверкой на фатальные ошибки) параметры в соответствующую CRT-функцию.
 
Integer:

Кто понимает, это правильный результат?

 

Спасибо за поднятый вопрос. Мы исправим данное поведение в одном из ближайших билдов. Будет производиться преобразование в соответствии с CP_ACP

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