Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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:
590
Rating:
(37)
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

Das Skript sucht alle Textdateien im lokalen Terminalordner und löscht jene, dessen Erstellungsdatum kleiner ist als der Datenwert des Eingabeparameters "InpFilesDate". 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));

Hinweis: Das Skript lösche alle Textdateien im lokalen Terminalordner die vor dem 1. Jannuar 2010 erstellt wurden (der InpFilesDate Parameterwert ist Standard). Bevor Sie es also starten, stellen Sie sicher, dass Sie keine Textdateien mit wichtigen Informationen im lokalen Terminalordner haben.

Code:

//--- zeige das Fesnter mit den Eingabeparametern beim Aufruf des Skripts
#property script_show_inputs
//--- Datum für alte Dateien
input datetime InpFilesDate=D'2010.01.01 00:00';
//+------------------------------------------------------------------+
//| Skript Programmstart Funktion                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // Variable zum speichern von Dateinamen
   string   filter="*.txt"; // Filter für Suche nach Dateien
   datetime create_date;    // Dateierstellungsdatum
   string   files[];        // Liste von Dateinamen
   int      def_size=25;    // standardmäßige Arraygröße
   int      size=0;         // Anzahl von Dateien
//--- Speicher für das Array reservieren
   ArrayResize(files,def_size);
//--- Such-Handle für Wurzelverzeichnis des lokalen Ordners
   long search_handle=FileFindFirst(filter,file_name);
//--- prüfe, ob FileFindFirst() erfolgreich ausgeführt wurde
   if(search_handle!=INVALID_HANDLE)
     {
      //--- suchen von Dateien in einer Schleife
      do
        {
         files[size]=file_name;
         //--- Größe des Arrays vergrößern
         size++;
         if(size==def_size)
           {
            def_size+=25;
            ArrayResize(files,def_size);
           }
         //--- Fehlerwert zurücksetzen
         ResetLastError();
         //--- Dateierstellungsdatum beziehen
         create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false);
         //--- prüfen, ob die Datei alt ist
         if(create_date<InpFilesDate)
           {
            PrintFormat("%s Datei gelöscht!",file_name);
            //--- alte Datei löschen
            FileDelete(file_name);
           }
        }
      while(FileFindNext(search_handle,file_name));
      //--- Such-Handle schließen
      FileFindClose(search_handle);
     }
   else
     {
      Print("Dateien nicht gefunden!");
      return;
     }
//--- prüfen, welche Dateien übrig geblieben sind
   PrintFormat("Ergebnisse:");
   for(int i=0;i<size;i++)
     {
      if(FileIsExist(files[i]))
         PrintFormat("%s Datei existiert!",files[i]);
      else
         PrintFormat("%s Datei gelöscht!",files[i]);
     }
  }

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

Demo_FileFind Demo_FileFind

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

FigurelliSeries FigurelliSeries

Der Indikator ermöglicht die Definition der Trendrichtung

Demo_FileCopy Demo_FileCopy

Dieses Skript demonstriert ein Beispiel für die Verwendung der FileCopy() Funktion

The20sv0.20 The20sv0.20

Ein Trendsignalindikator