Ошибки, баги, вопросы - страница 1768

 

Волшебная строка

Последовательность действий в MetaEditor\1495 при разрешении экрана 1024x768 :

  • Открыть прилагаемый файл
  • Ползунок горизонтальной прокрутки передвинуть до конца вправо (как на рисунке)
  • В 3-ей строке выделить мышью фрагмент /*12345*/
Дополнительные настройки: Сервис\Настройки\Общие\Табуляция 4 символа
Файлы:
Test.mq5  2 kb
[Удален]  

При попытке преобразования строки в число с помощью функции StringToInteger(), в случае, если строка не содержит числа возвращается 0 без ошибки (GetLastError() = 0). В случае, если во входных параметрах представлена строка и пользователь некорректно указал значения - функция вернет некорректное значение и не выдаст ошибки. Это плохо.

Далее, если строка содержит некорректное представление числа, например 5о (вместо 50) - функция вернет значение 5, опять же не выдав ошибки. И тут мало того, что это не 0, дак функция разобрала строку как 5, что опять таки не корректно.

Уважаемые разработчики, доработайте функцию, пожалуйста, добавив коды ошибок или же в случае невозможности разбора - вернув значение LONG_MAX + ошибку, чтобы можно было определить что не так. Сейчас этого сделать невозможно.

Код проверочного скрипта:

#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
input string value="05";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   const long iValue=StringToInteger(value);
   Print("iValue = ",iValue,", lastError = ",GetLastError());
  }
//+------------------------------------------------------------------+
 

Реализуйте свой вариант функции - это займет не больше 10 минут.

Поведение системных функций мы менять не будем. 

[Удален]  
Renat Fatkhullin:

Реализуйте свой вариант функции - это займет не больше 10 минут.

Поведение системных функций мы менять не будем. 

Т.е. Вы не считаете, что нужно дорабатывать функции, тем более функции, которые явно могут соврать? 

Даже если бы просто добавили коды ошибок - уже было бы хорошо, а так Вы предлагаете изобрести велосипед. Не сложный, конечно, но велосипед.

 
Alexey Kozitsyn:

Т.е. Вы не считаете, что нужно дорабатывать функции, тем более функции, которые явно могут соврать? 

Даже если бы просто добавили коды ошибок - уже было бы хорошо, а так Вы предлагаете изобрести велосипед. Не сложный, конечно, но велосипед.

Не нужно дорабатывать, это полные аналоги wtoi/atoi. Вопрос закрыт.
 

Ошибка при компиляции

#include <Math\Stat\Math.mqh>
struct S {};
 
здравствуйте, подскажите пожалуйста, возможно ли настраивать "разделитель периодов" в метатрейдере? я просто хочу чтобы на м5 я мог видеть, где кончались свечки 15, 30 и часовые, чтобы не смотреть всегда по времени, как это сделать можно?
 
Slat:
здравствуйте, подскажите пожалуйста, возможно ли настраивать "разделитель периодов" в метатрейдере? я просто хочу чтобы на м5 я мог видеть, где кончались свечки 15, 30 и часовые, чтобы не смотреть всегда по времени, как это сделать можно?

да, это можно видеть

сделайте индикатор с рисованием вертикальных линий на нужном времени

 

Ошибка в <Math\Stat\Math.mqh>

double QNaN   =Nan(0x7FF7000000000000);   // QNaN
Это не QNaN
 
A100:

Ошибка в <Math\Stat\Math.mqh>

double QNaN   =Nan(0x7FF7000000000000);   // QNaN
Это не QNaN
Какой long тогда соответствует QNaN?