Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 458

 

Подскажите, пожалуйста, как из текста сделать цифры?

Есть текст string="OpenOrder_Part=1";

мне надо отделить цифру 1 и конвертировать её в "int".

 
-Aleks-:

Подскажите, пожалуйста, как из текста сделать цифры?

Есть текст string="OpenOrder_Part=1";

мне надо отделить цифру 1 и конвертировать её в "int".

Ищите знаки после "=" и StringToInteger()
 
-Aleks-:

Подскажите, пожалуйста, как из текста сделать цифры?

Есть текст string="OpenOrder_Part=1";

мне надо отделить цифру 1 и конвертировать её в "int".

Навскидку - разделить строку по разделителю "=". Функция StringSplit(). А дальше StringToInteger().
 
Artyom Trishkin:
Ищите знаки после "=" и StringToInteger()

Спасибо.

Странно, но StringToInteger() не потребовалось - числа складываются и без этой функции.


Tapochun:
Навскидку - разделить строку по разделителю "=". Функция StringSplit(). А дальше StringToInteger().

Спасибо! Всё не плохо получилось, однако теперь не получается правильно закодировать строку - совместить текст с цифрами. Ну и не ясно, как быть, если я не знаю где цифра...

Пишу так

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

что не так?
 
-Aleks-:

Спасибо.

Странно, но StringToInteger() не потребовалось - числа складываются и без этой функции.


Спасибо! Всё не плохо получилось, однако теперь не получается правильно закодировать строку - совместить текст с цифрами. Ну и не ясно, как быть, если я не знаю где цифра...

Пишу так

int CountPendingOrder_OS=1;

string comm="CountPendingOrder_OS_"+CountPendingOrder_OS;

что не так?

Вот поэтому и нужна была функция StringToInteger(). Но можно проще.

string comm = " "+(string)CountPendingOrder_OS.

Вы пытаетесь соединить строковую часть с целочисленной. Потому и ошибка. Нужно преобразовать целочисленную часть к строковой. В данном случае - с помощью явного преобразования. 

 
Tapochun:

Вот поэтому и нужна была функция StringToInteger(). Но можно проще.

string comm = " "+(string)CountPendingOrder_OS.

Вы пытаетесь соединить строковую часть с целочисленной. Потому и ошибка. Нужно преобразовать целочисленную часть к строковой. В данном случае - с помощью явного преобразования. 

Спасибо, вот только огорчило, что функция IntegerToString() не умеет работать с числовым нулём - заменяет его на "заполнитель"!
 
-Aleks-:
Спасибо, вот только огорчило, что функция IntegerToString() не умеет работать с числовым нулём - заменяет его на "заполнитель"!
Тогда пользуйтесь явным преобразованием.
 
Tapochun:
Тогда пользуйтесь явным преобразованием.

А это как? :) Я пока сделал проверку на ноль...


Вот ещё словил ошибку, но не пойму как её интерпретировать...

2015.10.15 14:54:46.709 2011.06.29 10:50  Testing pass stopped due to a critical error in the EA

 2015.10.15 14:54:46.709 2011.06.29 10:50  Access violation read to 0x00000006 in 'C:\Users\<...>\Kamikadze_MA-9.ex4'

 
-Aleks-:

...

Вот ещё словил ошибку, но не пойму как её интерпретировать...

2015.10.15 14:54:46.709 2011.06.29 10:50  Testing pass stopped due to a critical error in the EA

 2015.10.15 14:54:46.709 2011.06.29 10:50  Access violation read to 0x00000006 in 'C:\Users\<...>\Kamikadze_MA-9.ex4'

С такой ошибкой в сервисдеск.
 
-Aleks-:

А это как? :) Я пока сделал проверку на ноль...


Вот ещё словил ошибку, но не пойму как её интерпретировать...

2015.10.15 14:54:46.709 2011.06.29 10:50  Testing pass stopped due to a critical error in the EA

 2015.10.15 14:54:46.709 2011.06.29 10:50  Access violation read to 0x00000006 in 'C:\Users\<...>\Kamikadze_MA-9.ex4'

Я описал это выше: (string) перед именем переменной.

МТ5? 

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