Erros, bugs, perguntas - página 867

 

Boa tarde.

Reinstalado o sistema. Instalei o MT5 a partir do zero. Como se verificou, o servidor de demonstração mudou. Agora é FXCM-MT5Demo01, não sei o que era o antigo antes. Assim, a minha antiga conta de demonstração não funcionou.

Registei uma nova conta de demonstração. Antes, se rolar para a esquerda da história, ela terminará. Neste servidor, não existe de todo. Mudei os prazos e o histórico não é descarregado.

Não há nada antes de 02.10.2012. Quando testei algum Expert Advisor padrão do complexo, este não é descarregado quando estabeleci o período de tempo para um ano.

Por favor, aconselhe-me como descarregar a história ou dê-me o endereço do antigo servidor de demonstração.

Win 7 Max Rus SP1 x64, firewall standard está desactivado, Avast livre 7.0.1466 (ligar e desligar) MT5 v.5.00 Build 712 (10/12/2012)

Ao abrir a janela "Sobre" no MT5, não posso Alt+Tab.

 
Vladon:

Eu estava no perfil do site, estava cheio e não lhe toquei, então hoje estava a fazer trabalho - e a tábua está silenciosa,

Pensei no que se passava - depois fui ao site e a minha identificação não estava lá.

Preenchido um novo, não posso dizer que tenha mudado ou não, na minha opinião os números são os mesmos.

Recebe actualmente alguma notificação?
 
PVOID:
As notificações estão a chegar-lhe neste momento?
Sim, depois de o reentrar no website.
 

Quem compreende, será este o resultado correcto?

Código:

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

O resultado é:

ShortToString(Var) e CharToString(Var2) funcionaram correctamente, ambos deram um "A" russo.

Mas porque é que oStringFormat("%C",Var2) não dá um "A" russo?

Está escrito na ajuda:

c

int

Tipo de carácter curto (Unicode).

C

int

Tipo de carácter de char (ANSI)

 
Integer:

Mas porque é que o StringFormat("%C",Var2) não dá um "A" russo?

Muito provavelmente StringFormat funciona com UTF-7, e CharToString com o charset actual do Windows. É por isso que dá um tal resultado.

Por exemplo:

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

A questão que se coloca é porque é que CharArrayToString tem a opção de seleccionar a página de código, enquanto CharToString não tem?

 
avoitenko:

StringFormat funciona muito provavelmente com UTF-7, e é por isso que produz este resultado.

Por exemplo:

À À

A questão é porqueCharArrayToString tem uma opção de selecção de charset, mas CharToString não tem?


Parece ser assim, mas está escrito na ajuda sobre a ANSI:

C int Char (ANSI) personagem.

Assim, escrito em ajuda deve ser entendido como "C int de tipo char (ANSI), mas ainda de tabela UTF"? Qual é o significado de tal coisa, isso é o que não está claro.

 
Integer:

Então o texto de ajuda deve ser entendido como "C int de tipo char (ANSI), mas ainda da tabela UTF"? O que é que isto significa, não é claro.

Se eu fosse o programador, substituiria StringFormat para %C pela codificação actual do Windows em vez de UTF-7,

para que o resultado seja idêntico a quando se chama CharToString.

 
avoitenko:

Se eu fosse o programador, definiria o StringFormat para %C para a codificação actual do Windows em vez de UTF-7,

para que o resultado seja o mesmo que quando se chama CharToString.

E eu pensei que sim, talvez um insecto?
 
Integer:

Quem compreende, será este o resultado certo?


Simplesmente traduzimos (com verificação de erros fatais) os parâmetros para a função CRT apropriada.
 
Integer:

Quem compreende, será este o resultado certo?

Obrigado por levantar esta questão. Iremos corrigir este comportamento num dos próximos edifícios. Haverá uma conversão de acordo com CP_ACP