[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 311

 
chief2000:

- Ist es möglich, die Anzahl der Elemente eines Arrays in einer Datei zu ermitteln? Wie lassen sich unnötige Maßnahmen in diesem Fall generell vermeiden?


FileSize(handle) geteilt durch Elementgröße = Anzahl der Elemente?
 
Figar0:

FileSize(handle) geteilt durch die Größe der Elemente = Anzahl der Elemente?

Ist dies eine Vermutung?

Wie kann man die Größe eines Elements in einer Binärdatei ermitteln? Vielleicht ist ein Teil davon von mehr als nur Elementen besetzt?

 
chief2000:

Wenn Sie die Anzahl zu hoch ansetzen, erhalten Sie eine Menge Nullwerte (richtig?)

Die Dokumentation scheint zu sagen

Функция возвращает количество фактически прочитанных элементов.
 
chief2000:

Ist dies eine Vermutung?

Wie kann man die Größe eines Elements in einer Binärdatei ermitteln? Vielleicht ist ein Teil davon von mehr als nur den Elementen besetzt?


Die Größe eines Artikels hängt davon ab, was Sie dort schreiben, entweder 4 oder 8. Wie sieht Ihr Schreibprozess aus?
 
Roger:

Die Dokumentation scheint zu sagen

Wenn eine Datei 1000 Elemente hat und count=20, werden tatsächlich 20 gelesen.

Aber was passiert, wenn count=5000?

Es ist nicht klar, was sie mit "Vor dem Lesen von Daten muss das Array eine ausreichende Größe haben" meinen - es wäre einfacher, alle Elemente in das Array nach Anzahl der Elemente einzulesen, und dann kann man das Array bei Bedarf abschneiden usw.

 
Figar0:

Die Größe des Postens hängt davon ab, was du dort schreibst, entweder 4 oder 8. Wie sieht dein Schreibprozess aus?

Ich verwende (Schreiben und Lesen sind zwei unabhängige Schritte):

 FileWriteArray( int handle, object array[], int start, int count) 
 
chief2000:

Ich verwende (Schreiben und Lesen sind zwei unabhängige Schritte):


int FileWriteArray( int handle, object array[], int start, int count)

Die Funktion schreibt das Array in eine Binärdatei. Arrays wie int, bool, datetime und color werden geschrieben als 4 Byte ganze Zahlen. Arrays vom Typ double werden als Fließkommazahlen geschrieben. 8 Byte Gleitkommazahlen.

Ich habe skizziert, was Sie wissen müssen. Wenn ein Array aus Doubles in die Datei geschrieben wurde, dann ergibt die Division der Dateigröße durch 8 die Anzahl der Array-Elemente in der Datei.

 
Figar0:

int FileWriteArray( int handle, object array[], int start, int count)

Die Funktion schreibt das Array in eine Binärdatei. Arrays wie int, bool, datetime und color werden Element für Element geschrieben als 4 Byte ganze Zahlen. Arrays vom Typ double werden als Fließkommazahlen geschrieben. 8 Byte Gleitkommazahlen.

Ich habe hervorgehoben, was Sie wissen müssen. Wenn ein Array double in eine Datei geschrieben wurde, dann ergibt die Division der Dateigröße durch 8 die Anzahl der Arrayelemente in der Datei.

Öffnen Sie nun eine gespeicherte Datei in einem Textbetrachter - so sieht sie aus:

Es sieht so aus, als ob es ungefähr 50 Elemente hat (es sollten ungefähr so viele Elemente sein), aber seine Größe beträgt 2432 Bytes. Offenbar werden darin "Platzpatronen" gespeichert.

 
Hallo zusammen. Bitte beraten Sie mich. Wie kann ich MQL4 in einem Indikator in einem separaten Fenster verwenden, um das Histogramm nicht ab Null, sondern ab bestimmten Werten zu zeichnen. Ich möchte, dass der Ishimoku-Indikator die Werte für andere Zeitrahmen in einem separaten Fenster anzeigt.
 
chief2000: Offenbar speichert es den "Rohling" darin.
Er speichert das, was man in ihn hineinlegt) Es gibt keine Wunder.
Grund der Beschwerde: