Errori, bug, domande - pagina 867

 

Buon pomeriggio.

Reinstallato il sistema. Ho installato MT5 da zero. Come si è scoperto il server demo è cambiato. Ora è FXCM-MT5Demo01, non so quale fosse quello vecchio prima. Quindi il mio vecchio conto demo non ha funzionato.

Ho registrato un nuovo conto demo. Prima, se si scorre a sinistra della storia, la si finisce. Su questo server non lo fa affatto. Ho scambiato i timeframe e la cronologia non viene scaricata.

Non c'è niente prima del 02.10.2012. Quando provo qualche Expert Advisor standard del complesso, non viene scaricato quando imposto il timeframe a un anno.

Per favore consigliatemi come scaricare la storia o datemi l'indirizzo del vecchio server demo.

Win 7 Max Rus SP1 x64, firewall standard disattivato, Avast free 7.0.1466 (accendere e spegnere) MT5 v.5.00 Build 712 (10/12/2012)

Quando si apre la finestra "Informazioni" in MT5, non posso usare Alt+Tab.

 
Vladon:

Ero nel profilo del sito, era pieno e non l'ho toccato, poi oggi stavo facendo del lavoro - e il tablet è silenzioso,

Ho pensato che cosa c'è - poi sono andato sul sito e il mio ID non c'era.

Ne ho compilato uno nuovo, non posso dire che sia cambiato o meno, secondo me i numeri sono gli stessi.

Ricevi attualmente delle notifiche?
 
PVOID:
Le notifiche ti arrivano al momento?
Sì, dopo averla reinserita nel sito web.
 

Chi capisce, è questo il risultato corretto?

Codice:

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

Il risultato è:

ShortToString(Var) e CharToString(Var2) hanno funzionato correttamente, entrambi hanno dato un "A" russo.

Ma perchéStringFormat("%C",Var2) non dà un "A" russo?

È scritto nell'aiuto:

c

int

Tipo di carattere breve (Unicode).

C

int

Tipo di carattere Char (ANSI)

 
Integer:

Ma perché StringFormat("%C",Var2) non dà un "A" russo?

Molto probabilmente StringFormat funziona con UTF-7, e CharToString con il charset corrente di Windows. Ecco perché dà un tale risultato.

Per esempio:

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

La domanda sorge spontanea: perché CharArrayToString ha l'opzione di selezionare la pagina di codice, mentre CharToString no?

 
avoitenko:

StringFormat molto probabilmente funziona con UTF-7, che è il motivo per cui produce questo risultato.

Per esempio:

À À À

La domanda è perchéCharArrayToString ha un'opzione di selezione del charset, ma CharToString no?


Sembra essere così, ma è scritto nell'aiuto su ANSI:

C int Char (ANSI) carattere.

Quindi scritto in aiuto dovrebbe essere inteso come "C int carattere di tipo char (ANSI), ma ancora dalla tabella UTF"? Qual è il significato di una cosa del genere, è questo che non è chiaro.

 
Integer:

Quindi il testo di aiuto dovrebbe essere inteso come "carattere C int di tipo char (ANSI), ma ancora dalla tabella UTF"? Qual è il significato di questo, non è chiaro.

Se fossi lo sviluppatore, sostituirei StringFormat per %C con l'attuale codifica di Windows invece di UTF-7,

in modo che il risultato sia identico a quando si chiama CharToString.

 
avoitenko:

Se fossi lo sviluppatore, imposterei lo StringFormat per %C alla codifica corrente di Windows invece di UTF-7,

in modo che il risultato sia lo stesso di quando si chiama CharToString.

E ho pensato, forse un bug?
 
Integer:

Chi capisce, è questo il risultato giusto?


Traduciamo semplicemente (con controllo degli errori fatali) i parametri nella funzione CRT appropriata.
 
Integer:

Chi capisce, è il risultato giusto?

Grazie per aver sollevato la questione. Correggeremo questo comportamento in una delle prossime build. Ci sarà una conversione secondo CP_ACP