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
Bibliotheken

FileUnlimited - Bibliothek für den MetaTrader 5

Ansichten:
792
Rating:
(30)
Veröffentlicht:
2016.03.21 15:31
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\TheXpert\ \MQL5\Libraries\TheXpert\ \MQL5\Scripts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Eine Bibliothek um mit Dateien auf Basis der win API zu arbeiten. Ohne Standort Beschränkungen.

Zum augenblicklichen Zeitpunkt ist nur der read-only Modus implementiert. Diese Bibliothek wird noch aktualisiert.

  • Die Dateien FileUnlimited.mqh, FileUnlimitedConstants.mqh, und StringUtils.mqh müssen in das folgende Verzeichnis kopiert werden terminal_data_folder\MQL5\Include\TheXpert;
  • Die Datei ConstFileUnlimited.mqh Muss in das folgende Verzeichnis kopiert werden terminal_data_folder\MQL5\Libraries\TheXpert;
  • Die Datei FileUnlimitedTest.mq5 muss in das folgende Verzeichnis kopiert werden terminal_data_folder\MQL5\Scripts.

Ich habe versucht die Verwendung dieser Klasse so einfach wie möglich zu halten.

Ein Beispiel eine Anwendungsmöglichkeit (das Skript):

#include <TheXpert/FileUnlimited.mqh>
#include <TheXpert/StringUtils.mqh>

#define CP_UTF16 1200

void OnStart()
{
   string name = "TheXpert\\Test.txt";
   string path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + name;
   
   int hFile = FileOpen(name, FILE_WRITE | FILE_TXT, ' ', CP_UTF16);
   if (hFile == INVALID_HANDLE)
   {
      Print("File not opened.");
      return;
   }
   
   bool writeBool = false, readBool = true;
   long writeLong = -4369549, readLong = 0;
   double writeDouble = -4369549.245, readDouble = 0;
   datetime writeDatetime = 2596824987, readDatetime = 0;
   color writeColor = Blue, readColor = White;
   string writeString = "2r4i6bf4wb9tb69vw", readString = "";
   
   FileWrite(hFile, writeBool);
   FileWrite(hFile, writeLong);
   FileWrite(hFile, writeDouble);
   FileWrite(hFile, writeDatetime);
   FileWrite(hFile, writeColor);
   FileWrite(hFile, writeString);

   FileClose(hFile);
   
   // ---------------------------------------------
   // Ab hier wird die Bibliothek benutzt.
   // ---------------------------------------------
   ConstFile* file = OpenConstFile(path);
   if (CheckPointer(file) != POINTER_INVALID)
   {
      file.Read(readBool);
      Print("readBool = ", readBool);

      file.Read(readLong);
      Print("readLong = ", readLong);

      file.Read(readDouble);
      Print("readDouble = ", readDouble);

      file.Read(readDatetime);
      Print("readDatetime = ", readDatetime);

      file.Read(readColor);
      Print("readColor = ", readColor);

      file.Read(readString);
      Print("readString = ", readString);
      
      delete file;
   }
   else
   {
      Print("Failed to open ConstFile at path -- ", path);
   }
}

Die Bibliothek arbeitet nur mit Unicode-Dateien. Aus diesem Grund benutzen wir die CP_UTF16 code page (Aus irgendeinem Grund ist sie nicht als Konstante in der Programmiersprache enthalten).

Bitte informieren Sie mich über alle eventuell auftretenden Fehler in den Kommentaren oder in einem neuen Thread.

Kommentare Vorschläge und konstruktive Kritik sind immer willkommen.

Lasst uns etwas Nützliches für jedermann machen!

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

Ergodic DTI-Oscillator Blau_Ergodic_DTI Ergodic DTI-Oscillator Blau_Ergodic_DTI

Der Ergodic DTI-Oscillator (Directional Trend Index) von William Blau.

Directional Trend Index Blau_DTI Directional Trend Index Blau_DTI

Directional Trend Index (DTI) Indicator von William Blau.

AMkA AMkA

Perry Kaufman's adaptiver gleitender Durchschnitt mit indikativen Signalpunkten.

Aroon Aroon

Der Aroon Indikator von Tushar Chande zeigt an, ob ein Langzeittrend weiterhin Bestand hat oder ob er lediglich eine kurze Pause einlegt bevor er weiter seinen Trend fortsetzt.