MetaTrader 5 herunterladen

FileCopy

Kopiert Ausgangsdatei aus einem Lokale Ordner oder Gesamtordner in eine andere Datei.

bool  FileCopy(
   const string  src_file_name,     // der Name der Quelle-Datei 
   int           common_flag,       // die Lage
   const string  dst_file_name,     // der Name der Zieldatei 
   int           mode_flags         // der Zugangsmode 
   );

Parameter

src_file_name

[in]  Datename für Kopieren.

common_flag

[in] Flagge, die Dateilage bestimmt. Wenn common_flag=FILE_COMMON, befindet sich Datei im Gesamtordner aller Client-Terminals \Terminal\Common\Files. Anderenfalls befindet sich die Datei im Lokalen Ordner (zum Beispiel, common_flag=0).

dst_file_name

[in]  Name der ergebenden Datei.

mode_flags

[in] Zugangsflaggen. Parameter kann erst 2 Flaggen enthalten: FILE_REWRITE und/oder FILE_COMMON - andere Flaggen werden ignoriert. Wenn Date existiert schon und dabei die Flagge FILE_REWRITE nicht angegeben wurde, wird die Datei nicht neugeschrieben und die Funktion gibt false zurück.

Rückgabewert

Beim Misserfolg gibt die Funktion false zurück.

Hinweis

Aus Sicherheitsgründen ist die Arbeit mit Dateien in MQL5 streng gesteuert. Dateien, mit denen Datei-Operationen mittels MQL5 durchgeführt werden, können nicht außerhalb der Datei-Sandbox sein.

Wenn die neue Datei existiert, wird Kopieren abhängig davon durchgeführt, ob es die Flagge FILE_REWRITE im Wert des parameters gibt  mode_flags oder nicht.

Beispiel:

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//--- Eingabeparameters
input string InpSrc="source.txt";       // die Quelle
input string InpDst="destination.txt";  // Kopie
input int    InpEncodingType=FILE_ANSI// ANSI=32 oder UNICODE=64
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- zeigen den Inhalt der Quelle an (er muss existieren sein)
   if(!FileDisplay(InpSrc))
      return;
//--- prüfen Sie, ob schon die Datei der Kopie existiert (es ist nicht verpflichtet, erstellt zu sein)
   if(!FileDisplay(InpDst))
     {
      //--- die Datei der Kopie existiert nicht, das Kopieren ohne Fahne FILE_REWRITE (das richtig Kopieren)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("Die Datei ist abgeschrieben!");
      else
         Print("Die Datei ist nicht abgeschrieben!");
     }
   else
     {
      //--- die Datei der Kopie existiert schon, wir werden versuchen, ohne FILE_REWRITE Fahne abzuschreiben (das falsche Kopieren)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("Die Datei ist abgeschrieben!");
      else
         Print("Die Datei ist nicht abgeschrieben!");
      //--- der InpDst Dateiinhalt bleibt vorig
      FileDisplay(InpDst);
      //--- Wir werden noch einmal mit der FILE_REWRITE Fahne abschreiben (das richtiges Kopieren auf die Existenz der Datei)
      if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
         Print("Die Datei ist abgeschriebened!");
      else
         Print("Die Datei ist nicht abgeschrieben!");
     }
//--- haben die Kopie der Datei bekommen InpSrc
   FileDisplay(InpDst);
  }
//+------------------------------------------------------------------+
//| Lesen des Inhalts einer Datei                                    |
//+------------------------------------------------------------------+
bool FileDisplay(const string file_name)
  {
//--- der Fehlerwert zu stürzen
   ResetLastError();
//--- öffnen Sie die Datei
   int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- darstellen Sie den Dateiinhalt im Zyklus
      Print("+---------------------+");
      PrintFormat("der Dateiname = %s",file_name);
      while(!FileIsEnding(file_handle))
         Print(FileReadString(file_handle));
      Print("+---------------------+");
      //--- schließen Sie die Datei
      FileClose(file_handle);
      return(true);
     }
//--- es ist damit gescheitert, die Datei zu öffnen
   PrintFormat("%s ist nicht geöffnet, Fehler = %d",file_name,GetLastError());
   return(false);
  }