Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 862

 

Apropos Würfel!

Können Sie mir sagen, wie man einen unnötigen "Würfel" löscht?

 
im-zvv:

Apropos Würfel!

Können Sie mir bitte sagen, wie man einen unnötigen "Würfel" löscht?

Dazu muss man wissen, an welcher Stelle sich dieser "Würfel" befindet, wie viele Bytes er belegt, einen Dateizeiger dorthin umschreiben und einen neuen Wert an diese Stelle schreiben.

Folglich ist es einfach nicht realistisch, wenn Saiten unterschiedliche Längen haben. Es wird nicht möglich sein zu berechnen, wie viele Bytes der gewünschte "Würfel" umfasst.

 
Alexey Viktorov:

Dazu muss man wissen, an welcher Stelle sich dieser "Würfel" befindet und wie viele Bytes er belegt, dann kann man den Dateizeiger dort einpacken und den neuen Wert an diese Stelle schreiben.

Wenn also Zeichenketten unterschiedlich lang sind, können wir das nicht tun. Es wird unmöglich sein, zu berechnen, wie viele Bytes zum richtigen "Würfel" gehören.

Es liegt auf der Hand, dass all diese Berechnungen die Verarbeitungszeit erhöhen.

Ich werde nach anderen Methoden suchen.

Ich danke Ihnen.

 
Alexey Viktorov:

Dazu muss man wissen, an welcher Stelle sich dieser "Würfel" befindet und wie viele Bytes er belegt, einen Dateizeiger dorthin umschreiben und einen neuen Wert an diese Stelle schreiben.

Bei unterschiedlich langen Zeichenfolgen ist dies daher nicht möglich. Es wird unmöglich sein, zu berechnen, wie viele Bytes der gewünschte "Würfel" enthält.

Wenn es nicht entscheidend ist und Sie WinApi verwenden können, dann denke ich, dass die Aufgabe über FileMapping gelöst werden kann.

 

Ich werde alles versuchen. Ich beginne mit der Erstellung einer "leeren" Datei, die abstrakte Variablen für die Reserve enthält. Dann werde ich sie durch die Daten ersetzen, die ich erhalte.

Vielleicht klappt's ja. Das einzige Problem ist die Größe der Datei, sie könnte größer werden. Ich muss vor jedem Lesen eine neue Sicherung erstellen.

 
Auf der Suche nach Artikeln über die Verwendung desneuen Operators in mql4, können Sie solche Artikel empfehlen? Wer kann mir kurz erklären, warum man Klassen braucht, wenn es Funktionen und globale Variablen gibt? Ich habe mir viele Videos angesehen und die Hilfe mehrmals gelesen und verstehe immer noch nicht, wozu das gut sein soll.
 
Seric29:
Auf der Suche nach Artikeln über die Verwendung desneuen Operators in mql4, beraten solche Artikel? Ich habe viele Videoclips gesehen und die Hilfedatei mehrmals gelesen, aber ich verstehe nicht, wozu das gut sein soll.

der neue Operator in MQL wird nur benötigt, um einen Zeiger auf eine Objektinstanz zu erzeugen


MQL-Programme sind ziemlich spezialisiert und OOP ist vor allem für die Kapselung geeignet, ich habe oben ein Beispiel derCWorkTime-Klasse gegebenhttps://www.mql5.com/ru/forum/160683/page861#comment_11840254

ist es praktisch, die Kapselung zu verwenden, um mehrere Instanzen des Zeitlimit-Objekts zu erstellen, etwa so:

int OnInit()
{
   Work1=new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work2=new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);
}

.....


void OnTick()
  {

if(Work1.Disable() || Work1.Disable())
{
 Comment("Не торговое время!!!");
 }
else
{......

d.h. in meinem Beispiel können Sie nun 2 Intervalle der EA-Arbeitszeit festlegen

SZY: Lesen - Suche in den Forumsbeiträgen im Abschnitt "Objekte".

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.26
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Igor Makanu:

Es ist klar, dass Klassen in einem größeren Ausmaß Datenvariablen und Funktionen zusammensetzen, und im restlichen Ausmaß wahrscheinlich etwas Mächtiges tun, wenn ich das richtig verstehe, denn alles kann durch Funktionen organisiert werden, vielleicht arbeiten Klassen schneller als Funktionen, man bekommt schnelleren Zugriff auf Daten, ich habe in Foren gelesen, dass sie den Speicher gleichmäßiger und sparsamer nutzen und all das.

 

Warum funktioniert dieser Code nicht?

#property version   "1.00"
#property strict
string iComments="\n 
 class CArray : public Cobject 
{
public:
    double m_Array[100];
}//дальше в OnInit()
 {Carray *arr = new CArray;
   arr.m_Array[22] = 1.23456;

....
}

Vielleicht sollte die Klasse mit einem Doppelpunkt beschrieben werden ::? Die Idee ist, einen Zeiger zu erstellen, der auf einen anderen Zeiger zeigt.

 

Hallo!

Nochmals vielen Dank anAlexey Viktorov für den Tipp mit den Zitaten - alles funktioniert. An diesem Montag haben wir die Situation, dass die Deutschen gehandelt haben, während die Engländer einen freien Tag haben. Es stellte sich heraus, dass in der Bedingung für die Eröffnung der Euro-Position alte Werte des Pfunds verwendet wurden. Daher die Frage: Wie kann man im Code überprüfen, ob beide Symbole an diesem Tag gehandelt werden?

Ich danke Ihnen.

Grund der Beschwerde: