FileGetInteger

Ruft eine ganzzahlige Eigenschaft der Datei. Es gibt 2 Varianten der Funktion.

1. Eigenschaften beim Handle bekommen.

long  FileGetInteger(
   int                         file_handle,   // Datei-Handle
   ENUM_FILE_PROPERTY_INTEGER  property_id    // ID der Eigenschaft
   );

2. Eigenschaften beim Dateinamen bekommen.

long  FileGetInteger(
   const string                file_name,            // der Dateiname
   ENUM_FILE_PROPERTY_INTEGER  property_id,          // ID der Eigenschaft
   bool                        common_folder=false   // Die Datei ist in einem lokalen Ordner (false)
   );                                                // oder in einem freigegebenen Ordner von allen Terminals angezeigt (true)

Parameter

file_handle

[in]  Dateideskriptor der durch die FileOpen() Funktion zurückgegeben wird.

file_name

[in]  Der Dateiname.

property_id

[in]  ID der Datei-Eigenschaft. Der Wert kann der ENUM_FILE_PROPERTY_INTEGER Enumerationswerte sein. Wenn die zweite Version der Funktion benutzt wird, können Sie die Werte nur für die folgenden Eigenschaften erhalten: FILE_EXISTS, FILE_CREATE_DATE, FILE_MODIFY_DATE, FILE_ACCESS_DATE und FILE_SIZE.

common_folder=false

[in]  Verweist auf den Speicherort der Datei. Wenn der Parameter falsch ist, dann das Data-Ordner des Terminals durchgeschaut wird, ansonsten wird es davon ausgegangen, dass die Datei in einem freigegebenen Ordner von Kunden-Terminals liegt \Terminal\Common\Files (FILE_COMMON).

Rückgabewert

Wert der Eigenschaft. Im Falle eines Fehlers, gibt die Funktion -1 zurück. Um die Information über Fehler zu erhalten, muss man die Funktion GetLastError() aufrufen.

Wenn ein Ordner angegeben wird, wenn Sie die Eigenschaften durch den Namen erhalten, hat die Funktion Fehler 5018 (ERR_MQL_FILE_IS_DIRECTORY) in jedem Fall, während der Rückgabewert korrekt ist.

Hinweis

Die Funktion verändert immer den Fehlercode. Wenn es gelingt, wird der Fehlercode auf Null zurückgesetzt.

Beispiel:

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//--- Eingabeparameters
input string InpFileName="data.csv";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string path=InpDirectoryName+"//"+InpFileName;
   long   l=0;
//--- öffnen Sie die Datei
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_CSV);
   if(handle!=INVALID_HANDLE)
     {
      //--- drucken Sie alle Informationen über die Datei
      Print(InpFileName," file info:");
      FileInfo(handle,FILE_EXISTS,l,"bool");
      FileInfo(handle,FILE_CREATE_DATE,l,"date");
      FileInfo(handle,FILE_MODIFY_DATE,l,"date");
      FileInfo(handle,FILE_ACCESS_DATE,l,"date");
      FileInfo(handle,FILE_SIZE,l,"other");
      FileInfo(handle,FILE_POSITION,l,"other");
      FileInfo(handle,FILE_END,l,"bool");
      FileInfo(handle,FILE_IS_COMMON,l,"bool");
      FileInfo(handle,FILE_IS_TEXT,l,"bool");
      FileInfo(handle,FILE_IS_BINARY,l,"bool");
      FileInfo(handle,FILE_IS_CSV,l,"bool");
      FileInfo(handle,FILE_IS_ANSI,l,"bool");
      FileInfo(handle,FILE_IS_READABLE,l,"bool");
      FileInfo(handle,FILE_IS_WRITABLE,l,"bool");
      //--- schließen Sie die Datei
      FileClose(handle);
     }
   else
      PrintFormat("%s Datei ist nicht geöffnet, FehlerCode = %d",InpFileName,GetLastError());
  }
//+------------------------------------------------------------------+
//| Anzeige den Wert der Dateieigenschaft                            |
//+------------------------------------------------------------------+
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
              long l,const string type)
  {
//--- erhalten Sie den Wert der Eigenschaft
   ResetLastError();
   if((l=FileGetInteger(handle,id))!=-1)
     {
      //--- der Wert erhaltet wurde, zeigen Sie es im richtigen Format
      if(!StringCompare(type,"bool"))
         Print(EnumToString(id)," = ",l ? "true" : "false");
      if(!StringCompare(type,"date"))
         Print(EnumToString(id)," = ",(datetime)l);
      if(!StringCompare(type,"other"))
         Print(EnumToString(id)," = ",l);
     }
   else
      Print("Fehler, Kode = ",GetLastError());
  }

Sehen Sie auch

Dateioperationen, Dateieigenschaften