123 lines
5.0 KiB
Markdown
123 lines
5.0 KiB
Markdown
# FileGetInteger
|
||
|
||
Gets an integer property of a file. There are two variants of the function.
|
||
|
||
1. Get a property by the handle of a file.
|
||
|
||
```
|
||
long FileGetInteger(
|
||
int file_handle, // File handle
|
||
ENUM_FILE_PROPERTY_INTEGER property_id // Property ID
|
||
);
|
||
|
||
```
|
||
|
||
2. Get a property by the file name.
|
||
|
||
```
|
||
long FileGetInteger(
|
||
const string file_name, // File name
|
||
ENUM_FILE_PROPERTY_INTEGER property_id, // Property ID
|
||
bool common_folder=false // The file is viewed in a local folder (false)
|
||
); // or a common folder of all terminals (true)
|
||
|
||
```
|
||
|
||
Parameters
|
||
|
||
file_handle
|
||
|
||
[in] File descriptor returned by [FileOpen()](/en/docs/files/fileopen).
|
||
|
||
file_name
|
||
|
||
[in] File name.
|
||
|
||
property_id
|
||
|
||
[in] File property ID. The value can be one of the values of the [ENUM_FILE_PROPERTY_INTEGER](/en/docs/constants/io_constants/enum_file_property_integer) enumeration. If the second variant of the function is used, you can receive only the values of the [following properties](/en/docs/constants/io_constants/enum_file_property_integer#filegetinteger_limitation): FILE_EXISTS, FILE_CREATE_DATE, FILE_MODIFY_DATE, FILE_ACCESS_DATE and FILE_SIZE.
|
||
|
||
common_folder=false
|
||
|
||
[in] Points to the file location. If the parameter is false, terminal data folder is viewed. Otherwise it is assumed that the file is in the shared folder of all terminals \Terminal\Common\Files ([FILE_COMMON](/en/docs/constants/io_constants/fileflags)).
|
||
|
||
Return Value
|
||
|
||
The value of the property. In case of an error, -1 is returned. To get an error code use the [GetLastError()](/en/docs/check/getlasterror) function.
|
||
|
||
If a folder is specified when getting properties by the name, the function will have error 5018 (ERR_MQL_FILE_IS_DIRECTORY) in any case, though the return value will be correct.
|
||
|
||
Note
|
||
|
||
The function always changes the error code. In case of successful completion the error code is reset to NULL.
|
||
|
||
Example:
|
||
|
||
```
|
||
//--- display the window of input parameters when launching the script
|
||
#property script_show_inputs
|
||
//--- input parameters
|
||
input string InpFileName="data.csv";
|
||
input string InpDirectoryName="SomeFolder";
|
||
//+------------------------------------------------------------------+
|
||
//| Script program start function |
|
||
//+------------------------------------------------------------------+
|
||
void OnStart()
|
||
{
|
||
string path=InpDirectoryName+"//"+InpFileName;
|
||
long l=0;
|
||
//--- open the file
|
||
ResetLastError();
|
||
int handle=FileOpen(path,FILE_READ|FILE_CSV);
|
||
if(handle!=INVALID_HANDLE)
|
||
{
|
||
//--- print all information about the 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");
|
||
//--- close the file
|
||
FileClose(handle);
|
||
}
|
||
else
|
||
PrintFormat("%s file is not opened, ErrorCode = %d",InpFileName,GetLastError());
|
||
}
|
||
//+------------------------------------------------------------------+
|
||
//| Display the value of the file property |
|
||
//+------------------------------------------------------------------+
|
||
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
|
||
long l,const string type)
|
||
{
|
||
//--- receive the property value
|
||
ResetLastError();
|
||
if((l=FileGetInteger(handle,id))!=-1)
|
||
{
|
||
//--- the value received, display it in the correct 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("Error, Code = ",GetLastError());
|
||
}
|
||
|
||
```
|
||
|
||
See also
|
||
|
||
[File Operations](/en/docs/files), [File Properties](/en/docs/constants/io_constants/enum_file_property_integer)
|