MetaTrader 5 herunterladen

FileReadArray

Liest Felder aller Typen ausser Zeilentypen (kann Feld der Strukturen ohne Zeilen und dynamische Felder), aus Binärdatei von der laufenden Position des Dateianzeigers.

uint  FileReadArray(
   int    file_handle,               // Datei-Handle
   void&  array[],                   // Feld für Aufzeichnung 
   int    start=0,                   // Anfangsposition für Schreiben 
   int    count=WHOLE_ARRAY          // Anzahl für Lesen 
   );

Parameter

file_handle

[in]  Dateiattribut, das durch die Funktion FileOpen() zurückgegeben wird.

array[]

[out]  Feld, wohin Daten geladen werden.

start=0

[in]  Anfangsposition für Schreiben in das Feld.

count=WHOLE_ARRAY

[in]  Anzahl der Elemente für Lesen.

Rückgabewert

Anzahl der gelesenen Elemente. Als Default liest das ganze Feld (count=WHOLE_ARRAY).

Hinweis

Zeilenfeld kann nur aus Datei des Typs TXT gelesen werden. Wenn notwendig versucht die Funktion die Größe des Feldes zu vergrössern.

Beispiel (die Datei wird verwendet, die infolge der Arbeit des Beispiels für die Funktion FileWriteArray bekommen ist)

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an 
#property script_show_inputs
//--- Eingabeparameters
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Struktur zum Speichern von Daten auf die Preise                  |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // Datum
   double            bid;  // der Bid Preis
   double            ask;  // der Ask Preis
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ein Array von Struktur
   prices arr[];
//--- Pfad zur Datei
   string path=InpDirectoryName+"//"+InpFileName;
//--- öffnen Sie die Datei
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- lesen Sie alle Dateteidaten in ein Array
      FileReadArray(file_handle,arr);
      //--- erhalten Sie die Größe des Arrays
      int size=ArraySize(arr);
      //--- drucken Sie die Daten aus dem Array
      for(int i=0;i<size;i++)
         Print("Daten = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
      Print("Gesamtdaten = ",size);
      //--- schließen Sie die Datei
      FileClose(file_handle);
     }
   else
      Print("Fehler beim Öffnen der Datei, Fehler ",GetLastError());
  }

Sehen Sie auch

Variablen, FileWriteArray