FileSave

Schreibt alle Elemente des als Parameter übermittelten Arrays in eine binäre Datei. Die Funktion ermöglicht es, Arrays numerischer Typen oder einfacher Strukturen als einen String zu schreiben.

bool  FileSave(
   const string  file_name,         // Dateiname
   void&         buffer[],          // Array numerischer Typen oder einfacher Strukturen
   int           common_flag=0      // Flag der Datei, standardmäßig werden die Dateien in den Ordner <data_folder>\MQL5\Files\ geschrieben
   );

Parameter

file_name

[in]  Name der Datei, in welche das Array geschrieben wird.

buffer

[in]  Array numerischer Typen oder einfacher Strukturen.

common_flag=0

[in] Flag der Datei, zeigt den Modus an. Wenn der Parameter nicht angegeben wurde, dann wird die Datei in den Unterordner MQL5\Files (oder in <testing_agent_directory>\MQL5\Files beim Testen) geschrieben.

Rückgabewert

Im Fehlerfall liefert die Funktion false.

Beispiel:

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input int      ticks_to_save=1000; // Anzahl der Ticks
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_ticks.bin";
   MqlTick ticks[];
//---
   int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
   if(copied!=-1)
     {
      PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);
      //--- wenn die Tick-Historie synchronisiert ist, ist der Fehlercode gleich Null
      if(!GetLastError()==0)
         PrintFormat("%s: Ticks are not synchronized, error=%d",_Symbol,copied,_LastError);
      //---  schreiben wir Ticks in eine Datei
      if(!FileSave(filename,ticks,FILE_COMMON))
         PrintFormat("FileSave() failed, error=%d",GetLastError());
     }
   else
      PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError());
//--- nun lesen wir diese Ticks aus der Datei
   ArrayFree(ticks);
   long count=FileLoad(filename,ticks,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
         TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
         ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
        }
     }
  }

Sieh auch

Strukturen und Klassen, FileWriteArray, FileWriteStruct, FileLoad, FileWrite