FileGetInteger

Ottiene una proprietà integer di un file. Ci sono due varianti della funzione.

1. Ottine una proprietà dall'handle del file.

long  FileGetInteger(
   int                         file_handle,         // File handle
   ENUM_FILE_PROPERTY_INTEGER  property_id          // ID proprietà
   );

2. Ottiene la proprietà dal nome del file.

long  FileGetInteger(
   const string                file_name,            // Nome File
   ENUM_FILE_PROPERTY_INTEGER  property_id,          // ID proprietà
   bool                        common_folder=false   // Il file è visualizzato in una cartella locale (false)
   );                                                // o in una cartella comune a tutti i terminali (true)

Parametri

file_handle

[in] Il descrittore di file restituito da FileOpen().

file_name

[in]  Nome file.

property_id

[in]  ID proprietà File . Il valore può essere uno dei valori dell'enumerazione ENUM_FILE_PROPERTY_INTEGER. Se la seconda variante della fuzione viene usata, puoi ricevere solo i valori delle seguenti proprietà: FILE_EXISTS, FILE_CREATE_DATE, FILE_MODIFY_DATE, FILE_ACCESS_DATE e FILE_SIZE.

common_folder=false

[in]  Punta alla locazione del file. Se il parametro è false, viene visualizzata la cartella dati del terminale. Altrimenti è sottointeso che il file è in una cartella condivisa da tutti i terminali \Terminal\Common\Files (FILE_COMMON).

Valore restituito

Il valore della proprietà. In caso di errore, viene restituito -1. Per ottenere un codice di errore usare la funzione GetLastError().>

Se una cartella viene specificata quando si ottengono le proprietà dal nome, la funzione avrà errore 5018 (ERR_MQL_FILE_IS_DIRECTORY) in ogni caso, though the return value will be correct.

Nota

La funzione cambia sempre il codice dell'errore. In caso di completamento di successo, il codice dell'errore è resettato a NULL.

Esempio:

//--- mostra la finestra dei parametri di input quando lancia lo script
#property script_show_inputs
//--- parametri di input
input string InpFileName="data.csv";
input string InpDirectoryName="SomeFolder";
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
   string path=InpDirectoryName+"//"+InpFileName;
   long   l=0;
//--- apre il file
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_CSV);
   if(handle!=INVALID_HANDLE)
     {
      //--- fa il print di tutte le informazioni sul file
      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");
      //--- chiude il file
      FileClose(handle);
     }
   else
      PrintFormat("%s il file non è stato aperto, ErrorCode = %d",InpFileName,GetLastError());
  }
//+--------------------------------------------------------------------------------+
//| Mostra il valore della proprietà del file                           |
//+--------------------------------------------------------------------------------+
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
              long l,const string type)
  {
//--- ricevere il valore della proprietà
   ResetLastError();
   if((l=FileGetInteger(handle,id))!=-1)
     {
      //--- il valore ricevuto, lo mostra nel formato corretto
      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("Error, Code = ",GetLastError());
  }

Vedi anche

Operazioni sui File, Proprietà dei File