und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Demo_FileSize - Skript für den MetaTrader 5
- Ansichten:
- 766
- Rating:
- Veröffentlicht:
- 2016.06.20 13:22
- 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 sortiert alle CSV-Dateien im allgemeinen Ordner des Client-Terminals, um deren Größe zu ermitteln. Nachdem die Größe festgestellt wurde, wir der Wert mit dem "InpThresholdSize" Schwellwert verglichen und je nach Ergebnis wird die Datei in den Ordner "InpBigFolderName" oder "InpSmallFolderName" verschoben. So werden große und kleine Dateien auseinander sortiert.
Neben der FileSize() Funktion gibt es auch dieFileFindFirst(), die FileFindNext() und die FileFindClose() Funktionen im Skript um die Dateien zu sortieren und die FileMove() Funktion um sie zu erschieben.
Code:
//--- zeige das Fesnter mit den Eingabeparametern beim Aufruf des Skripts #property script_show_inputs Eingabeparameter: input ulong InpThresholdSize=20; // Dateigräße Schwellwert in Kilobytes input string InpBigFolderName="big"; // Ordner für große Dateien input string InpSmallFolderName="small"; // Ordner für kleine Dateien //+------------------------------------------------------------------+ //| Skript Programmstart Funktion | //+------------------------------------------------------------------+ void OnStart() { string file_name; // Variable zum speichern von Dateinamen string filter="*.csv"; // Filter zum Suchen der Dateien ulong file_size=0; // Dateigröße in Bytres int size=0; // Anzahl von Dateien //--- Pfad der Datei ausgeben, mit der wir arbeiten PrintFormat("Arbeite im %s\\Files\\ Ordner",TerminalInfoString(TERMINAL_COMMONDATA_PATH)); //--- Such-Handle des allgemeinen Ordners aller Terminals holen long search_handle=FileFindFirst(filter,file_name,FILE_COMMON); //--- prüfe, ob FileFindFirst() erfolgreich ausgeführt wurde if(search_handle!=INVALID_HANDLE) { //--- Dateien in der Schleife entsprechend ihrer Größe verschieben do { //--- Datei öffnen ResetLastError(); int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON); if(file_handle!=INVALID_HANDLE) { //--- Dateigröße ermitteln file_size=FileSize(file_handle); //--- Datei schließen FileClose(file_handle); } else { PrintFormat("Fehler beim Öffnen der Datei %s, Fehlercode = %d",file_name,GetLastError()); continue; } //--- Dateigröße ausgeben PrintFormat("Größe der Datei %s beträgt %d Bytes",file_name,file_size); //--- Pfad für das Verschieben der Datei definieren string path; if(file_size>InpThresholdSize*1024) path=InpBigFolderName+"//"+file_name; else path=InpSmallFolderName+"//"+file_name; //--- Datei verschieben ResetLastError(); if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON)) PrintFormat("%s Datei verschoben",file_name); else PrintFormat("Fehler, Code = %d",GetLastError()); } while(FileFindNext(search_handle,file_name)); //--- Such-Handle schließen FileFindClose(search_handle); } else Print("Dateien nicht gefunden!"); }
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1633
Der Indikator demonstriert ein Beispiel für die Verwendung der FileReadDouble() Funktion
Demo_FileWriteDoubleDas Skript demonstriert ein Beispiel für die Verwendung der FileWriteDouble() Funktion
Das Skript demonstriert ein Beispiel für die Verwendung der FileTell() Funktion
Demo_FileWriteIntegerDas Skript demonstriert ein Beispiel für die Verwendung der FileWriteInteger() Funktion