FileGetInteger

Reçoit une propriété entière du fichier. Il y a 2 variantes de la fonction.

1. La réception des propriétés selon le handle du fichier.

long  FileGetInteger(
   int                         file_handle,   // le handle du fichier
   ENUM_FILE_PROPERTY_INTEGER  property_id    // l'identificateur de la propriété
   );

2. La réception des propriétés selon le nom du fichier.

long  FileGetInteger(
   const string                file_name,            // le nom du fichier
   ENUM_FILE_PROPERTY_INTEGER  property_id,          // l'identificateur de la propriété
   bool                        common_folder=false   // le fichier est affiché dans un dossier local (false)
   );                                                // ou dans le dossier commun de tous les terminaux (true)

Paramètres

file_handle

[in]  Le descripteur de fichier, rendu par la fonction FileOpen().

file_name

[in] Le nom du fichier.

property_id

[in]  L'identificateur de la propriété du fichier. La valeur peut être l'une des valeurs de l'énumérationENUM_FILE_PROPERTY_INTEGER. Si on utilise une deuxième variante de la fonction, vous pouvez recevoir la valeur seulement des propriétés suivantes: FILE_EXISTS, FILE_CREATE_DATE, FILE_MODIFY_DATE, FILE_ACCESS_DATE et FILE_SIZE.

common_folder=false

[in]   Indique à l'emplacement du fichier. Si le paramètre est égal false, on examine le répertoire des données du terminal, sinon il est supposé que le fichier se trouve dans le dossier commun de tous les terminaux de client \Terminal\Common\Files (FILE_COMMON).

La valeur rendue

La valeur de la propriété. En cas de l'erreur rend -1, pour recevoir un code de l'erreur il faut appeler la fonction GetLastError().

Si on indique le répertoire à la réception des propriétés selon le nom, la fonction mettra l'erreur 5018 (ERR_MQL_FILE_IS_DIRECTORY) dans tous les cas, en cela la valeur rendue sera correcte.

Note

La fonction change toujours le code de l'erreur. En cas de succès, le code de l'erreur est remis à zéro.

Exemple:

//--- affichons la fenêtre des paramètres d'entrée au lancement du script
#property script_show_inputs
//--- les paramètres d'entrée 
input string InpFileName="data.csv";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string path=InpDirectoryName+"//"+InpFileName;
   long   l=0;
//--- ouvrons le fichier
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_CSV);
   if(handle!=INVALID_HANDLE)
     {
      //--- imprimons toute l'information sur le fichier
      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");
      //--- fermons le fichier
      FileClose(handle);
     }
   else
      PrintFormat("%s file is not opened, ErrorCode = %d",InpFileName,GetLastError());
  }
//+------------------------------------------------------------------+
//| L'affichage de la valeur des propriétés du fichier                            |
//+------------------------------------------------------------------+
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
              long l,const string type)
  {
//--- recevrons la valeur de la propriété
   ResetLastError();
   if((l=FileGetInteger(handle,id))!=-1)
     {
      //--- La valeur est reçue, l'affichons au format juste
      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());
  }

Voir aussi

Les opérations de fichier, Les propriétés des fichiers