Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 129

 
fxsaber:

ME verfügt über eine ALT+V-Kombination, mit der Sie die vorherigen Werte der Systemzwischenablage sehen können. Selbst wenn Sie etwas aus dem Browser kopiert haben und ME im Hintergrund gearbeitet hat, wird ME es sehen und sich daran erinnern.

Grob gesagt, sieht ME vieles von dem, was Sie am Computer tun. Wenn Sie beispielsweise ein Kontopasswort über den Zwischenspeicher einfügen, wird es im Verlauf von ME gespeichert.

Ich kopiere viel in diesen Megapuffer, ich muss ME neu starten, um diesen Puffer zu löschen, aber wenn ME startet, nimmt es immer noch die aktuellen Daten aus dem Puffer auf, das ist ärgerlich, ich schlug vor, eine Schaltfläche zum Löschen des Puffers am unteren Rand hinzuzufügen und die Positionen zu nummerieren, beim Einfügen ist es einfacher, nach Positionsnummern und nicht nach dem Inhalt zu navigieren

 
Vitaly Muzichenko:

Wow, ich kopiere Passwörter für Kryptowährungen. Wie nachteilig ist das für mich?

Wenn Sie z. B. von außen auf Ihren Computer zugreifen (TeamViewer usw.), ist es ratsam, sich von allen ME abzumelden und den Puffer zu säubern (den Müll dorthin zu kopieren), bevor Sie dies tun.

 
fxsaber:

ME verfügt über eine ALT+V-Kombination, mit der Sie die vorherigen Werte der Systemzwischenablage sehen können. Selbst wenn Sie etwas aus dem Browser kopiert haben und ME im Hintergrund gearbeitet hat, wird ME es sehen und sich daran erinnern.

Grob gesagt, sieht ME vieles von dem, was Sie am Computer tun.

Danke. Interessant. Es sollte hinzugefügt werden, dass nicht nur das, was in ME kopiert wurde, gespeichert wird, sondern alles in allen Anwendungen. Müssen konkret prüfen, bis zu welcher Tiefe gespeichert wird, habe gerade nachgesehen, habe drei kopierte Texte gesehen, zwei von ME und einen aus dem Text im Beitrag in diesem Forum.

ps; Sogar zwei aus dem Forumstext


 
Und für den Fall der Fälle sollten Sie sicherstellen, dass nichts gesucht oder ersetzt wird. In der Datei metaeditor.ini steht
FindWhatX=text
ReplaceWithX=text
 
fxsaber:

ME verfügt über eine ALT+V-Kombination, mit der Sie die vorherigen Werte der Systemzwischenablage sehen können. Selbst wenn Sie etwas aus dem Browser kopiert haben und ME im Hintergrund gearbeitet hat, wird ME es sehen und sich daran erinnern.

Grob gesagt, sieht ME vieles von dem, was Sie am Computer tun. Wenn Sie beispielsweise ein Passwort für ein Konto oder ein persönliches Konto aus einer anderen Ressource über den Puffer einfügen, wird es in den Verlauf der aktuellen ME-Sitzung aufgenommen.

Dies ist eine interessante Funktion. Gut, dass der Puffer im Speicher und nicht in einer Datei gespeichert ist.

 

Hier noch eine weitere Raffinesse.

Der Compiler beschwert sich nicht über gleichnamige Funktionen mit unterschiedlichen Eingabeparametern, auch wenn sie nicht zu einer Klasse gehören.

void OnStart()
{
 f1("28-70 ОГО");
 f1(1.01);
}

void f1(string s)
{
 Print(__FUNCSIG__, " ", s);
}

void f1(double s)
{
 Print(__FUNCSIG__, " ", s);
}

Ergebnis der Ausführung

2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(string) 28-70 ОГО
2019.03.10 10:34:45.566 !00 (EURUSD,H4) void f1(double) 1.01
 

Der Multi-Buffer ist großartig, um den Editor zu beschleunigen und ist sicher.

Es schreibt nichts auf die Festplatte und behält die Daten nur im Speicher.

 
Alexey Viktorov:

Hier noch eine weitere Raffinesse.

Der Compiler beschwert sich nicht über gleichnamige Funktionen mit unterschiedlichen Eingabeparametern, auch wenn sie nicht zu einer Klasse gehören.

Ergebnis der Ausführung

Dies ist eine normale Funktionsüberlastung. Alles ist Standard.

 
Artyom Trishkin:

Das ist eine normale Funktionsüberlastung. Alles ist Standard.

Aus irgendeinem Grund dachte ich, dass das Überladen nur in Klassen funktioniert. Ich würde gerne glauben, dass ich nicht der Einzige bin. Vielleicht hilft das ja jemandem. ))))

 
Der Optimierungscache kann mit folgender Technik deaktiviert werden
// Способ выключить кеш оптимизатора
sinput bool inCache = true; // Выключить кеш оптимизатора

input int Range = 0; // 0..10

void OnTesterInit( void )
{  
  if (inCache)
  {
    MathSrand((int)TimeLocal());
    
    ParameterSetRange("inCache", false, MathRand(), 0, 0, 0);    
  }
}

void OnTesterDeinit( void ) {}

void OnTesterPass( void )
{
  static int i = 0;
  
  Print(i++); // Признак того, что кеш выключен.
}

double OnTester( void )
{
  if (MQLInfoInteger(MQL_OPTIMIZATION))
  {
    uchar Data[];

    FrameAdd(NULL, 0, 0, Data);
  }

  return(0);
}


Natürlich wäre es eine bessere Lösung, wenn die EntwicklerOptimizationCacheOff() zur Verfügung stellen würden.

Beachten Sie, dass der Eingabeparameter bool eigentlich ein long ist. bool inCache = 1 und bool inCache = 2 sind also unterschiedliche Eingabeparameter, obwohl sie in beiden Fällen wahr sind.