Errori, bug, domande - pagina 2675

 
Sergey Dzyublik:

Un altro bug di MT5 (build 2316) con la generazione di codice di classe template quando si usa una classe interna.
C++ online:https://onlinegdb.com/HJkKXAqMU

Grazie per il post, risolto

 
Sergey Dzyublik:

Bug MT5(build 2340) Errore di compilazione quando si tenta di accedere alla classe interna per un parametro template di una funzione template.

Grazie per il post, risolto

 
Ilyas:

In che codifica è il file?

In UTF-8 standard

Ho provato in diversi modi, con diverse codifiche e diversi delimitatori.

Il risultato è 5008 o geroglifici.

 
Sergey Dzyublik:

Due domande immediatamente per il compilatore MT5 (build 2321):

1. Le priorità di esecuzione delle funzioni template in MQL non corrispondono a quelle delle funzioni template in C++ (online: https://onlinegdb.com/Hkvz8Hu7L).
Così in C++, quando tutte e tre le funzioni template sono presenti, viene eseguita la funzione template con il risultato "C++:1", se viene rimossa allora viene eseguita "C++:2", e se viene rimossa allora viene eseguita "C++:3".
Le priorità in MQL sono abbastanza diverse: "C++:2" seguito da "C++:1" e "C++:3".


Non è chiaro perché la prima delle funzioni sia vietata in MQL, mentre la funzione identica con un parametro fittizio è già consentita:

Grazie per il messaggio, risolto

 
Vladimir Pastushak:

In UTF-8 standard

Ho provato in diversi modi, con diverse codifiche e diversi delimitatori.

Il risultato è 5008 o geroglifici.

Si prega di fornire un codice funzionante con un file da analizzare

 

Sul lavoro del sito:

La visualizzazione del saldo nel mio conto personale è un po' sballata, se potete correggerla, ci sono molti zeri

File:
q1.PNG  12 kb
 
Ilyas:

Si prega di fornire un codice funzionante con un file da analizzare

//+------------------------------------------------------------------+
//| 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);
     }
  }
//+------------------------------------------------------------------+
File:
Files.zip  1 kb
 
Sergey Dzyublik:
In C++ si compila e funziona (online: https://onlinegdb.com/Syn90dd7I), ma in MQL l'errore: "'func' - ambiguous call to overloaded function"

Grazie per il post, risolto

 
Vladimir Pastushak:

In UTF-8 standard

Ho provato in diversi modi, con diverse codifiche e diversi delimitatori.

Il risultato è 5008 o geroglifici.

La codifica è ANSI, funzionerà solo in Windows russo.

Aggiungere il flag FILE_ANSI, quando si apre un file

m_hendle = FileOpen(name, FILE_READ | FILE_WRITE | FILE_CSV | FILE_ANSI);
 
Sergey Dzyublik:
Bug MT5 (build 2340) quando una struct interna viene passata ad una funzione template, il tipo di dati risultante non può essere usato come tipo di dati base per un'altra struct interna in una classe template:

Grazie per il post, risolto