Файловые операции

Группа функций для работы с файлами.

Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы".

Существует два каталога (с подкаталогами), в которых могут располагаться рабочие файлы:

  • папка_данных_терминала\MQL5\FILES\ (выберите для просмотра в терминале пункт меню "Файл"-"Открыть каталог данных");
  • общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\Files.

Программным путем можно получить наименования этих каталогов с помощью функции TerminalInfoString(), используя перечисление ENUM_TERMINAL_INFO_STRING:

//--- Папка, в которой хранятся данные терминала
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
//--- Общая папка всех клиентских терминалов
   string common_data_path=TerminalInfoString(TERMINAL_COMMONDATA_PATH);

Работа с файлами из других каталогов пресекается.

Если файл открывается для записи с помощью функции FileOpen(), то все указанные в пути подпапки будут созданы в случае их отсутствия.

Файловые функции позволяют работать с так называемыми "именованными каналами". Для этого достаточно вызвать функцию FileOpen() с соответствующими параметрами.

Функция

Действие

FileSelectDialog

Создает диалог открытия/создания файла или папки

FileFindFirst

Начинает перебор файлов в соответствующей директории в соответствии с указанным фильтром

FileFindNext

Продолжает поиск, начатый функцией FileFindFirst()

FileFindClose

Закрывает хэндл поиска

FileOpen

Открывает файл с указанным именем и указанными флагам

FileDelete

Удаляет указанный файл

FileFlush

Сброс на диск всех данных, оставшихся в файловом буфере ввода-вывода

FileGetInteger

Получает целочисленное свойство файла

FileIsEnding

Определяет конец файла в процессе чтения

FileIsLineEnding

Определяет конец строки в текстовом файле в процессе чтения

FileClose

Закрывает ранее открытый файл

FileIsExist

Проверяет существование файла

FileCopy

Копирует исходный файл из локальной или общей папки в другой файл

FileMove

Перемещает или переименовывает файл

FileReadArray

Читает массивы любых типов, кроме строковых (может быть массив структур, не содержащих строки и динамические массивы),  из бинарного файла с текущего положения файлового указателя

FileReadBool

Читает из файла типа CSV строку от текущего положения до разделителя (либо до конца текстовой строки) и преобразует прочитанную строку в значение типа bool

FileReadDatetime

Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime

FileReadDouble

Читает число двойной точности с плавающей точкой (double) из бинарного файла с текущего положения файлового указателя

FileReadFloat

Читает из текущего положения файлового указателя значение типа float

FileReadInteger

Читает из бинарного файла значение типа int, short или char в зависимости от указанной длины в байтах

FileReadLong

Читает из текущего положения файлового указателя значение типа long

FileReadNumber

Читает из файла типа CSV строку от текущего положения до разделителя (либо до конца текстовой строки) и преобразует прочитанную строку в значение типа double

FileReadString

Читает из файла строку с текущего положения файлового указателя

FileReadStruct

Cчитывает из бинарного файла содержимое в структуру, переданную в качестве параметра

FileSeek

Перемещает положение файлового указателя на указанное количество байт относительно указанного положения

FileSize

Возвращает размер соответствующего открытого файла

FileTell

Возвращает текущее положение файлового указателя соответствующего открытого файла

FileWrite

Записывает данные в файл типа CSV или TXT

FileWriteArray

Записывает в файл типа BIN массивы любых типов, кроме строковых

FileWriteDouble

Записывает в бинарный файл значение параметра типа double с текущего положения файлового указателя

FileWriteFloat

Записывает в бинарный файл значение параметра типа float с текущего положения файлового указателя

FileWriteInteger

Записывает в бинарный файл значение параметра типа int с текущего положения файлового указателя

FileWriteLong

Записывает в бинарный файл значение параметра типа long с текущего положения файлового указателя

FileWriteString

Записывает в файл типа BIN или TXT значение параметра типа string с текущего положения файлового указателя

FileWriteStruct

Записывает в  бинарный файл содержимое структуры, переданной в качестве параметра, с текущего положения файлового указателя

FileLoad

Считывает всё содержимое указанного бинарного файла  в переданный массив числовых типов или простых структур

FileSave

Записывает в бинарный файл все элементы массива, переданного в качестве параметра

FolderCreate

Создает директорию в папке Files (в зависимости от значения common_flag)

FolderDelete

Удаляет указанную директорию. Если папка не пуста, то она не может быть удалена

FolderClean

Удаляет все файлы в указанной папке