Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 458

 

Puoi dirmi come fare i numeri dal testo?

C'è un testo string="OpenOrder_Part=1";

Ho bisogno di separare la cifra 1 e convertirla in "int".

 
-Aleks-:

Puoi dirmi come fare i numeri dal testo?

C'è un testo string="OpenOrder_Part=1";

Ho bisogno di separare la cifra 1 e convertirla in "int".

Cerca i segni dopo "=" e StringToInteger()
 
-Aleks-:

Puoi dirmi come fare i numeri dal testo?

C'è un testo string="OpenOrder_Part=1";

Ho bisogno di separare la cifra 1 e convertirla in "int".

A colpo d'occhio - divide la stringa con il delimitatore "=". La funzione StringSplit(). E poi StringToInteger().
 
Artyom Trishkin:
Cerca i segni dopo "=" e StringToInteger()

Grazie.

Stranamente, StringToInteger() non era necessario - i numeri si sommano senza questa funzione.


Tapochun:
A colpo d'occhio, per dividere una stringa con delimitatore "=". La funzione StringSplit(). E poi StringToInteger().

Grazie! Ha funzionato bene, ma ora non riesco a codificare correttamente la stringa - combinare il testo con le cifre. E non è chiaro cosa fare se non so dove sia la cifra...

Scrivo così

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

cosa c'è che non va?
 
-Aleks-:

Grazie.

Stranamente, StringToInteger() non era necessario - i numeri si sommano senza questa funzione.


Grazie! Ha funzionato bene, ma ora non riesco a codificare correttamente la stringa - combinare il testo con i numeri. E non è chiaro come fare, se non so dov'è la cifra...

Lo scrivo così

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

Cosa c'è che non va?

Ecco perché avevo bisogno di StringToInteger(). Ma potrebbe essere più semplice.

stringa comm = ""+(stringa)CountPendingOrder_OS.

State cercando di collegare la parte stringa alla parte intera. Ecco perché c'è un errore. Dovresti convertire la parte intera in stringa. In questo caso è necessario utilizzare la conversione esplicita.

 
Tapochun:

Ecco perché la funzione StringToInteger() era necessaria. Ma potrebbe essere più semplice.

stringa comm = ""+(stringa)CountPendingOrder_OS.

State cercando di collegare la parte stringa alla parte intera. Ecco perché c'è un errore. Dovresti convertire la parte intera in stringa. In questo caso è necessario utilizzare la conversione esplicita.

Grazie, ma è frustrante che IntegerToString() non possa gestire lo zero numerico - lo sostituisce con "segnaposto"!
 
-Aleks-:
Grazie, ma è frustrante che IntegerToString() non possa gestire lo zero numerico - lo sostituisce con un "segnaposto"!
Allora usa la conversione esplicita.
 
Tapochun:
Allora usa la conversione esplicita.

Com'è? :) Ho fatto un controllo zero finora...


Ho anche trovato un errore, ma non so come interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 I test si sono fermati a causa di un errore critico nell'EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violazione di accesso letto a 0x00000006 in 'C:Users\<...>\Kamikadze_MA-9.ex4'

 
-Aleks-:

...

Ho anche trovato un errore, ma non so come interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 I test si sono fermati a causa di un errore critico nell'EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violazione di accesso letto a 0x00000006 in 'C:Users\<...>\Kamikadze_MA-9.ex4'

Con questo errore in servicedesk.
 
-Aleks-:

Com'è? :) Ho fatto un controllo zero finora...


Ho anche trovato un errore, ma non so come interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 I test si sono fermati a causa di un errore critico nell'EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violazione di accesso letto a 0x00000006 in 'C:Users\<...>\Kamikadze_MA-9.ex4'

L'ho descritto sopra: (string) prima del nome della variabile.

MT5?