Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
676
Rating:
(33)
Veröffentlicht:
2016.06.20 13:12
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Dieses Skript demonstriert ein Beispiel für die Verwendung der FileCopy() Funktion. Für eine Datei wird der Inhalt in eine andere kopiert. Für die erfolgreiche Kopie muss sich die Quelldatei im lokalen Ordner "Terminal" dessen Name im "InpSrc" Eingabeparameter angegeben wird befinden. Der Ort des lokalen Terminal-Ordners kann durch Aufruf der TerminalInfoString() Funktion festgestellt werden.

PrintFormat("Der Pfad zum lokalen Terminal-Ordner lautet: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); 
Zunächst wird das Skript versuchen, den Inhalt der Dateien anzuzeigen. Wenn die Zieldatei nicht vorhanden ist, sollten Sie die FileCopy()-Funktion ohne das FILE_REWRITE -Flag verwenden. Wenn die Zieldatei bereits erstellt wurde, muss für die erfolgreiche Kopie das FILE_REWRITE -Flag verwendet werden.

Code:

//--- Zeige Fenster mit den Eingabeparametern, wenn Sie das Skript starten
#property script_show_inputs
Eingabeparameter:
input string InpSrc="source.txt";       // Quelle
input string InpDst="destination.txt";  // Kopie
input int    InpEncodingType=FILE_ANSI; // ANSI=32 oder UNICODE=64
//+------------------------------------------------------------------+
//| Skript Programmstart Funktion                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Zeige Dateiinhalt (muss existieren)
   if(!FileDisplay(InpSrc))
      return;
//--- Prüfe, ob die Dateikopie bereits existiert (darf nicht erstellt werden)
   if(!FileDisplay(InpDst))
     {
      //--- die Dateikopie existiert nicht, kopieren ohne das FILE_REWRITE Flag (korrektes Kopieren)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("Datei wurde kopiert!");
      else
         Print("Datei wurde nicht kopiert!");
     }
   else
     {
      //--- die Dateikopie existiert bereits, versuche ohne das FILE_REWRITE Flag zu kopieren(ungültiges Kopieren)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("Datei wurde kopiert!");
      else
         Print("Datei wurde nicht kopiert!");
      //---Inhalt der Datei InpDst bleibt der gleiche
      <s0>if</s0>(!FileDisplay(InpDst))
      //--- ein weiteres mal mit FILE_REWRITE Flag kopieren (korrektes Kopieren wenn die Datei existiert)
      if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
         Print("Datei wurde kopiert!");
      else
         Print("Datei wurde nicht kopiert!");
     }
//--- Beziehe InpSrc Dateikopie
   <s0>if</s0>(!FileDisplay(InpDst))
  }
//+------------------------------------------------------------------+
//| Dateiihalt lesen                                                 |
//+------------------------------------------------------------------+
bool FileDisplay(const string file_name)
  {
//--- Fehlerwert zurücksetzen
   ResetLastError();
//--- Datei öffnen
   int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- Dateiinhalt in einer Schleife anzeigen
      Print("+---------------------+");
      PrintFormat("Dateiname = %s",file_name);
      while(!FileIsEnding(file_handle))
         Print(FileReadString(file_handle));
      Print("+---------------------+");
      //--- Datei schließen
      FileClose(file_handle);
      return(true);
     }
//--- Datei öffnen fehlgeschlagen
   PrintFormat("%s wurde nicht geöffnet, Fehler = %d",file_name,GetLastError());
   return(false);
  }

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1611

Demo_FileDelete Demo_FileDelete

Das Skript demonstriert ein Beispiel für die Verwendung der FileDelete() Funktion

Demo_FileFind Demo_FileFind

Das Skript ist ein einfaches Beispiel für die Verwendung der FileFindFirst(), FileFindNext() und FileFindClose() Funktionen

The20sv0.20 The20sv0.20

Ein Trendsignalindikator

i-IntradayFibonacci i-IntradayFibonacci

Intraday Fibonacci Levels