Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 458

 

¿Puedes decirme cómo hacer números con el texto?

Hay una cadena de texto="OpenOrder_Part=1";

Necesito separar el dígito 1 y convertirlo en "int".

 
-Aleks-:

¿Puedes decirme cómo hacer números con el texto?

Hay una cadena de texto="OpenOrder_Part=1";

Necesito separar el dígito 1 y convertirlo en "int".

Busque los signos después de "=" y StringToInteger()
 
-Aleks-:

¿Puedes decirme cómo hacer números con el texto?

Hay una cadena de texto="OpenOrder_Part=1";

Necesito separar el dígito 1 y convertirlo en "int".

De un vistazo - dividir la cadena por el delimitador "=". La función StringSplit(). Y luego StringToInteger().
 
Artyom Trishkin:
Busque los signos después de "=" y StringToInteger()

Gracias.

Extrañamente, StringToInteger() no era necesario - los números se suman sin esta función.


Tapochun:
De un vistazo, para dividir una cadena con delimitador "=". La función StringSplit(). Y luego StringToInteger().

Gracias. Funcionó bien, pero ahora no puedo codificar la cadena correctamente: combinar texto con dígitos. Y no está claro qué hacer si no sé dónde está el dígito...

Escribo así

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

¿qué ocurre?
 
-Aleks-:

Gracias.

Extrañamente, StringToInteger() no era necesario - los números se suman sin esta función.


Gracias. Funcionó bien, pero ahora no puedo codificar la cadena correctamente: combinar el texto con los números. Y no está claro cómo hacerlo, si no sé dónde está el dígito...

Lo escribo así

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

¿Qué pasa?

Por eso necesitaba StringToInteger(). Pero podría ser más sencillo.

string comm = ""+(string)CountPendingOrder_OS.

Estás tratando de conectar la parte de la cadena con la parte de los enteros. Por eso hay un error. Debes convertir la parte de enteros en la de cadenas. En este caso hay que utilizar la conversión explícita.

 
Tapochun:

Por eso era necesaria la función StringToInteger(). Pero podría ser más sencillo.

string comm = ""+(string)CountPendingOrder_OS.

Estás tratando de conectar la parte de la cadena con la parte de los enteros. Por eso hay un error. Debes convertir la parte de enteros en la de cadenas. En este caso hay que utilizar la conversión explícita.

Gracias, pero es frustrante que IntegerToString() no pueda manejar el cero numérico - ¡lo sustituye por un "marcador de posición"!
 
-Aleks-:
Gracias, pero es frustrante que IntegerToString() no pueda manejar el cero numérico - ¡lo sustituye por un "marcador de posición"!
A continuación, utilice la conversión explícita.
 
Tapochun:
A continuación, utilice la conversión explícita.

¿Cómo es eso? :) He hecho una comprobación de cero hasta ahora...


También he detectado un error, pero no sé cómo interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 El pase de prueba se detuvo debido a un error crítico en el EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violación de acceso leída a 0x00000006 en 'C:\Users\<...>\Kamikadze_MA-9.ex4'

 
-Aleks-:

...

También he detectado un error, pero no sé cómo interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 El pase de prueba se detuvo debido a un error crítico en el EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violación de acceso leída a 0x00000006 en 'C:\Users\<...>\Kamikadze_MA-9.ex4'

Con este error en servicedesk.
 
-Aleks-:

¿Cómo es eso? :) He hecho una comprobación de cero hasta ahora...


También he detectado un error, pero no sé cómo interpretarlo...

2015.10.15 14:54:46.709 2011.06.29 10:50 El pase de prueba se detuvo debido a un error crítico en el EA

2015.10.15 14:54:46.709 2011.06.29 10:50 Violación de acceso leída a 0x00000006 en 'C:\Users\<...>\Kamikadze_MA-9.ex4'

Lo he descrito más arriba: (cadena) antes del nombre de la variable.

¿MT5?