Fehler, Irrtümer, Fragen - Seite 2732

 
Vladimir Karputov:

Starten Sie die Suche (beliebige Suche, beliebiger Name) und beenden Sie die Suche sofort. Daraufhin wird eine Suchleiste angezeigt, in der Sie den Dateityp auswählen können:


Ups... Ich danke Ihnen.
 
Artyom Trishkin:

Ich weiß, dass ich die Videodateien finden muss. Alles. Ganz genau. Und welche Art und welchen Namen sie haben, soll die Maschine selbst herausfinden.

Es ist schwer zu erraten, wie die Maschine sucht, aber wie man in DOS sucht (drücken Sie Win+R und schreiben Sie cmd), etwa so:

dir/b/s  *.3 g2 *.3 gp *.3 gp2 *.3 gpp *.3 gpp2 *.asf *.asx *.avi *.bin *.dat *.drv *.f4v *.flv *.gtp *.h264 *.m4v *.mkv *.mod *.moov *.mov *.mp4 *.mpeg *.mpg *.mts *.rm *.rmvb *.spl *.srt *.stl *.swf *.ts *.vcd *.vid *.vid *.vid *.vob *.webm *.wm *.wmv *.yuv > d:\filename.txt

Ich habe die erste Websitehttp://fileext.ru/video gegoogelt, sie in Excel eingefügt, so dass sie in Spalten angezeigt wird, und dann in Notepad

letzter Parameter, in den Suchdaten mit Pfaden und Dateinamen geschrieben werden sollen d:\filename.txt

Ich habe es überprüft. Es ist working.... aber mein Binary hat nichts mit Video zu tun ))))

 
Die Kompilierung mit dem MQL5-Wolkenschutz scheint den Editor in Abwesenheit des Internets aufzuhängen. Zunächst bleibt er leicht hängen (d.h. der Editor ist für andere Aktionen verfügbar, aber der Kompilierbefehl wartet auf seinen Abschluss, und es ist nicht klar, wie lange er warten soll, ob es eine Zeitüberschreitung gibt). Wenn die Abbruchtaste gedrückt wird, bleibt sie fest hängen.
 

Ich möchte die Zeichenfolge von .dll zu MQL4 zurückgeben (MQL5 hat keine Probleme überhaupt)

Ich habe schon eine Menge Fehler gemacht, also muss ich die Wissenden fragen: Was ist ein Array von Strings im Speicher? - Was ist ein Array von Zeichenketten?

string s_arr_1[];
// эти массивы чем-нибудь отличаются?
string s_arr_2[10];
 
Igor Makanu:

Ich möchte die Zeichenfolge von .dll zu MQL4 zurückgeben (MQL5 hat keine Probleme überhaupt)

Ich habe schon eine Menge Fehler gemacht, also muss ich die Wissenden fragen: Was ist ein Array von Strings im Speicher? - Was ist ein Array von Zeichenketten?

Ein String-Array ist ein Array von String-Objekten. Irgendwo schrieb einer der Entwickler, dass es zwei Felder gibt: einen Zeiger auf eine Zeichenkette und 32 Bits für die Größe des zugewiesenen Speichers. Im Allgemeinen wäre es gut, solche Dinge in die offiziellen Dokumente zu schreiben, um nicht zu raten.
 
Igor Makanu:

Was ist ein Array von Zeichenketten im Speicher? - Was ist ein String-Array?!

Über MASSIVE Datenstruktur.
Ich beschreibe es für MT5, dasselbe sollte auch für MT4 gelten, wahrscheinlich wird etwas anders sein, aber es sollte ähnlich sein.

Im Allgemeinen besteht das Feld aus zwei Teilen: Beschreibung und Daten, es kann aber auch nur aus Daten bestehen.
Daten ist der für die Array-Elemente zugewiesene Speicher.
Beschreibung - die Struktur, die die folgenden Felder enthält, die Reihenfolge wird nicht gespeichert:

flags - Satz von Flags, die das Array beschreiben: IsDynamic, IsSetAsSerrias, IsIndexBuffer, ...
size - Anzahl der erstellten Elemente im Array;
capacity - Anzahl der reservierten Elemente im Array;
Konstruktorzeiger - Zeiger auf die Konstruktorfunktion für die Arrayelemente;
destructor pointer - Zeiger auf die Destruktorfunktion für die Array-Elemente;
Datenzeiger - Zeiger auf den Anfang des Arrays.

string s_arr_1[];- dynamisches Array, das aus einer Beschreibung und einem Datenarray besteht.
string s_arr_2[10]; - der Array-Typ hängt von der Position des Strings ab:
wenn sie als lokale Variable verwendet wird, ist sie ein statisches Array, das aus einer Beschreibung und einem Array von Daten besteht, die sich nacheinander auf dem Stack befinden.
wenn es als Feld in einer Struktur/Klasse verwendet wird, ist es nur ein Datenfeld (es gibt keinen Beschreibungsteil).
 
Sergey Dzyublik:

Über die Datenstruktur MASSIVE.
Dies ist eine Beschreibung aus dem Gedächtnis und für MT5, das gleiche sollte auch für MT4 sein, wahrscheinlich wird etwas anders sein, aber es sollte nahe dran sein.

Im Allgemeinen besteht das Feld aus zwei Teilen: Beschreibung und Daten, es kann aber auch nur aus Daten bestehen.
Daten ist der für die Array-Elemente zugewiesene Speicher.
Beschreibung - die Struktur, die die folgenden Felder enthält, die Reihenfolge wird nicht gespeichert:

flags - ein Satz von Flags, die das Array beschreiben: IsDynamic, IsSetAsSerrias, IsIndexBuffer, ...
size - Anzahl der erstellten Elemente im Array;
capacity - Anzahl der reservierten Elemente im Array;
Konstruktorzeiger - Zeiger auf die Konstruktorfunktion für die Arrayelemente;
destructor pointer - Zeiger auf die Destruktorfunktion für die Array-Elemente;
Datenzeiger - Zeiger auf den Anfang eines Arrays.

string s_arr_1[];- dynamisches Array, das aus einer Beschreibung und einem Datenarray besteht.
string s_arr_2[10]; - Der Array-Typ hängt von der Position des Strings ab:
wenn sie als lokale Variable verwendet wird, ist sie ein statisches Array, das aus einer Beschreibung und einem Array von Daten besteht, die sich nacheinander auf dem Stack befinden.
wenn es als Feld in einer Struktur/Klasse verwendet wird, ist es nur ein Datenfeld (es gibt keinen Beschreibungsteil).

Ich danke Ihnen!

Es gab die Hoffnung, dass vielleicht eine Standardstruktur von WinAPI existiert, aber anscheinend kann es nicht dasselbe mit Strings sein

SZZ: Ich habe den Austausch mit dll behoben, aber wie zuvor in 2 Aufrufen - Anfrage für Aktion in dll und geben Sie die erforderliche Puffergröße für String und der 2.


Wladimir Simakow:
Ein Array von Strings ist ein Array von String-Objekten. Irgendwo hat ein Entwickler geschrieben, dass es zwei Felder gibt: einen Zeiger auf eine Zeichenkette und 32 Bits der zugewiesenen Speichergröße. Im Allgemeinen wäre es gut, solche Dinge in den offiziellen Dokumenten zu vermerken, um nicht zu raten.

das Hauptproblem ist, dass MQL4 und 5 sehr unterschiedliche Programme sind ))))

String in MQL4 ist perfekt in .Net vonStringBuilderClass geparst, so dass Sie Recht haben, dass die Zeichenfolge nicht ein Speicherort, sondern ein Objekt ist.

 
что из себя представляет массив строк в памяти? - что такое массив строк?! 

Über die Datenstruktur STR.
Ich beschreibe es aus dem Gedächtnis für MT5, dasselbe sollte auch für MT4 gelten, wahrscheinlich wird etwas anders sein, aber es sollte ähnlich sein.


Die Zeile besteht aus Beschreibung + Daten.
Die Beschreibung enthält die folgenden Felder:

buffer_len - Puffergröße, die für die Zeichenkette zugewiesen wird;
unicode_str pointer - Zeiger auf das Feld unicode_str (offset+8) in der Datenstruktur.

Die Daten enthalten die folgenden Felder:
flags - Satz von Flags, die die Zeichenkette beschreiben: statisch (0x03)/dynamisch (0x01), möglicherweise Kodierungen...
len - Länge der Zeichenkette;
unicode_str - unicode_str Zeichenkette, auf die der Zeiger unicode_str aus Description direkt zeigt.
 
Sergey Dzyublik:

Über die Datenstruktur STR.
Ich beschreibe es aus dem Gedächtnis für MT5, dasselbe sollte auch für MT4 gelten, wahrscheinlich wird etwas anders sein, aber es sollte ähnlich sein.


Die Zeile besteht aus Beschreibung + Daten.
Die Beschreibung enthält die folgenden Felder:

buffer_len - Puffergröße, die für die Zeichenkette zugewiesen wird;
unicode_str pointer - Zeiger auf das Feld unicode_str (offset+8) in der Datenstruktur.

Die Daten enthalten die folgenden Felder:
flags - Satz von Flags, die die Zeichenkette beschreiben: statisch (0x03)/dynamisch (0x01), möglicherweise Kodierungen...
len - Länge der Zeichenkette;
unicode_str - unicode_str Zeichenkette, auf die der Zeiger unicode_str aus Description direkt zeigt.

Frage. Ist es irgendwo beschrieben oder haben Sie es selbst analysiert?

 
Igor Makanu:

Ich möchte die Zeichenfolge von .dll zu MQL4 zurückgeben (MQL5 hat keine Probleme überhaupt)

Ich habe schon eine Menge Fehler gemacht, also muss ich die Wissenden fragen: Was ist ein Array von Strings im Speicher? - Was ist ein Array von Zeichenketten?

Übergeben Sie nur ein uchar-Array anstelle eines String-Arrays. So ist es einfacher.
Sie können zum Beispiel wie folgt umrechnen:

int StringArrayToCharArray(string &stringArr[],uchar &c[]) {
   uchar temp[];
   int pos=0;
   for (int i=0; i<ArraySize(stringArr); i++) {
      ArrayFree(temp);
      StringToCharArray(stringArr[i],temp);
      ArrayCopy(c,temp,pos);
      pos+=ArraySize(temp);
   }
   return pos;
}
//+------------------------------------------------------------------+

int CharArrayToStringArray(string &stringArr[],uchar &c[]) {
   ArrayFree(stringArr);
   int pos=0;
   int j=0;
   for (; pos<ArraySize(c); j++) {
      ArrayResize(stringArr,j+1);
      stringArr[j]=CharArrayToString(c,pos);
      while(c[pos]!=0) pos++;
      pos++;
   }
   return j;
}

Funktioniert gleich für MQL4 und MQL5