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

 
Sergey Dzyublik:

Еще один баг MT5(build 2316) с генерацией кода шаблонного класса при использовании internal class.
С++ online: https://onlinegdb.com/HJkKXAqMU

Спасибо за сообщение, исправлено

 
Sergey Dzyublik:

Баг MT5(build 2340)  Ошибка компиляции при попытке доступа к internal class для шаблонного параметра шаблонной функции.

Спасибо за сообщение, исправлено

 
Ilyas:

В какой кодировке файл?

В стандартной UTF-8

Я пробовал по разному, с разными кодировками и с разными разделителями.

Результат либо 5008 либо иероглифы.

 
Sergey Dzyublik:

Сразу два вопроса к работе компилятора МТ5(build 2321):

1. Не соответствие приоритетов выполнения шаблонных функций в MQL в сравнении с шаблонными функциями в С++ (online: https://onlinegdb.com/Hkvz8Hu7L).
Так в С++, когда все три шаблонных функции в наличии, выполняется шаблонная функция с результатом "C++:1", если ее удалить, тогда выполнятся будет "C++:2", а если ее удалить - "C++:3".
В MQL же совсем другие приоритеты: "C++:2", затем "C++:1" и "C++:3".


2. Не понятно почему в MQL первая из функций запрещена, тогда как идентичная ей, но с фиктивным параметром, уже разрешена:

Спасибо за сообщение, исправлено

 
Vladimir Pastushak:

В стандартной UTF-8

Я пробовал по разному, с разными кодировками и с разными разделителями.

Результат либо 5008 либо иероглифы.

Предоставьте пожалуйста рабочий код с файлом для исследования

 

По работе сайта:

Отображение баланса в личном кабинете немного не верное, если можно - подправьте, а то много нулей

Файлы:
q1.PNG  12 kb
 
Ilyas:

Предоставьте пожалуйста рабочий код с файлом для исследования

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   core();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

  }
//+------------------------------------------------------------------+
void core()
  {
   string value = "", name = "";

   name =  "Test\\Test.csv";
   Print(FileIsExist(name));

   ResetLastError();
 
   int m_hendle = -1;
   m_hendle = FileOpen(name, FILE_READ | FILE_WRITE | FILE_CSV);
   if(m_hendle != INVALID_HANDLE)
     {
      Print((string)m_hendle + "    " + name + " [" + (string)FileSize(m_hendle) + "]"+ (string)GetLastError());
       while(!FileIsEnding(m_hendle))
        {
         string sCurrent = FileReadString(m_hendle);
         Print("sCurrent = ", sCurrent);
        }
      FileClose(m_hendle);
     }
  }
//+------------------------------------------------------------------+
Файлы:
Files.zip  1 kb
 
Sergey Dzyublik:
В С++ компилируется и все работает (online: https://onlinegdb.com/Syn90dd7I), а в MQL ошибка: "'func' - ambiguous call to overloaded function"

Спасибо за сообщение, исправлено

 
Vladimir Pastushak:

В стандартной UTF-8

Я пробовал по разному, с разными кодировками и с разными разделителями.

Результат либо 5008 либо иероглифы.

Кодировка ANSI, работать булет только в русской Windows

Добавте флаг FILE_ANSI, при открытии файла

m_hendle = FileOpen(name, FILE_READ | FILE_WRITE | FILE_CSV | FILE_ANSI);
 
Sergey Dzyublik:
Баг МТ5 (build 2340) при передаче internal struct в шаблонную функцию, полученный тип данных невозможно использовать как базовый тип данных для другой internal struct в шаблонном классе:

Спасибо за сообщение, исправлено
Причина обращения: