Kompilierungszeit mit Regex.mqh

 

Hallo,

weiß jemand warum nach Einbinden von Regex.mqh und ändern des Konstruktors von CRegex das Compilieren über 5 Sekunden dauert?


#include <RegularExpressions\Regex.mqh>

CRegex *objRegex;

int OnInit()
  {
//---
   objRegex = new CRegex("[a-zA-Z-]"); 

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  delete objRegex;
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }

0 error(s), 0 warning(s), compile time: 5561 msec		1	1

 

Ist nicht ungewöhnlich , bei mir dauert das compelieren des fastandeasygui Framework über 20 Sekunden.

Und ich hab keine lahme Ente :-)


Zeig doch mal was du geändert hast ( Vorher Nachher)

 

Vorher Nachher? Sorry, weiß gerade nicht was du meinst.

Der (Test)-EA besteht nur aus dem Code oben. Da ist sonst nichts drin und er braucht solange!
Mein eigentlicher EA ist auch noch nicht so groß, braucht aber ohne den Regex nur ca. 200msec.

 

Grundsatzfrage - wozu braucht ein EA, Indi. oder Skript Regex?

Wenn es zB. darum geht eine HTML-Seite (Kalender) auseinander zu nehmen, würde ich ein PowerShell Skript schreiben, das eine csv-Datei schreibt.

Denn

  1. der Download ist einfacher und flexibler,
  2. MQLx ist nicht auf Regex spezialisiert, es gibt andere Stärken, Powershell schon!!
  3. ich kann den Start des Skript über die Dienste automatisieren (So 20:00 für die nächste Woche..),
  4. so ein Skript ist unabhängig vom Terminal im Falle von Problemen, die zB. blockieren,
  5. PowerShell ist frei und soll es jetzt auch für Linux geben,
  6. ich hätte mir gewünscht, dass der Editor Regex kann - für finden und ersetzen, aber EA, Indi, Skripte sollten mit StringFind und StringSplit auskommen - imho.

Wie sagt schon Helmuth Graf von Moltke vor ~150 Jahren: Getrennt marschieren, vereint schlagen. ;)

 
markm2001:

Vorher Nachher? Sorry, weiß gerade nicht was du meinst.

Der (Test)-EA besteht nur aus dem Code oben. Da ist sonst nichts drin und er braucht solange!
Mein eigentlicher EA ist auch noch nicht so groß, braucht aber ohne den Regex nur ca. 200msec.

Sonst ist nichts drin ? ..hab eben mal das angesehen Regex.mqh

WEnn du es hier her hast https://www.mql5.com/de/code/15242

Das ist ein großes Paket....5 sek scheint mir da voll in Ordnung.

Alleine was alles includiert wird:

typedef string(*MatchEvaluator)(CMatch*);
#include <Internal\TimeSpan\TimeSpan.mqh>
#include <Internal\Generic\LinkedList.mqh>
#include <Internal\Generic\Dictionary.mqh>
#include "RegexOptions.mqh"
#include "RegexCode.mqh"
#include "RegexTree.mqh"
#include "RegexParser.mqh"
#include "RegexReplacement.mqh"
#include "RegexWriter.mqh"
#include "RegexMatchCollection.mqh"
#include "RegexRunner.mqh"
#include "RegexInterpreter.mqh"

Das ist kein Fehler

RegularExpressions in MQL5 für die Arbeit mit regulären Ausdrücken
RegularExpressions in MQL5 für die Arbeit mit regulären Ausdrücken
  • Stimmen: 36
  • 2016.05.20
  • MetaQuotes Software Corp.
  • www.mql5.com
Autor des Artikels: Hinweis: die Bibliothek funktioniert im MetaTrader 5 build 1285 und höher. Entpacken Sie die Zip-Datei in den Dateiordner. Die Codes der Bibliothek sind im folgenden Ordner zu finden: \MQL5\Include\RegularExpressions\ Beispiele von Test-Scripts finden Sie im Ordner: \MQL5\Scripts\RegularExpressionsExamples\ Hier ist eine...
 

Test bei mir...


0 error(s), 0 warning(s), compile time: 3709 msec        1    1

Laptop 6700HQ 16GB SSD


Noch Fragen ?

 

Hallo Christian,

danke, dass du es bei dir getestet hast. Da scheint ja wirklich alles OK zu sein. Wollte ich nur wissen...

Grund der Beschwerde: