Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Demo_FileMove - скрипт для MetaTrader 5

Просмотров:
1942
Рейтинг:
(31)
Опубликован:
2013.03.27 14:35
Обновлен:
2016.11.22 07:33
\MQL5\Files\SomeFolder\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Скрипт пытается выполнить попытку перемещения файла источника из поддиректории в локальной папке терминала в файл приемник в поддиректорию в общей папке всех клиентских терминалов. Имена файлов и поддиректорий указываются во входных параметрах скрипта. Местоположения локальной папки терминала и общей папки всех клиентских терминалов можно получить при помощи вызова функции TerminalInfoString().

PrintFormat("Путь к локальной папке терминала: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
PrintFormat("Путь к общей папке всех клиентских терминалов: %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));

Сначала скрипт использует функцию FileIsExist() для определения того, есть ли в локальной папке терминала по указанному пути файл источника, и если его нет, то выводится сообщение об ошибке. Затем проверяется, существует ли уже по указанному пути файл приемник. Если он еще не существует, то перемещение проводится без использования флага FILE_REWRITE. В противном случае флаг используется, иначе перемещение не будет произведено.

Код:

//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- входные параметры
input string InpSrcName="data.txt";
input string InpDstName="newdata.txt";
input string InpSrcDirectory="SomeFolder";
input string InpDstDirectory="OtherFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string local=TerminalInfoString(TERMINAL_DATA_PATH);
   string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
//--- получим пути к файлам
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- проверим, существуют ли файл источника (если нет - выход)
   if(FileIsExist(src_path))
      PrintFormat("%s file exists in the %s\\Files\\%s folder",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("Error, %s source file not found",InpSrcName);
      return;
     }
//--- проверим, существует ли уже файл результата
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("%s file exists in the %s\\Files\\%s folder",InpDstName,common,InpDstDirectory);
      //--- файл существует, перемещение нужно проводить с флагом FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("%s file moved",InpSrcName);
      else
         PrintFormat("Error! Code = %d",GetLastError());
     }
   else
     {
      PrintFormat("%s file does not exist in the %s\\Files\\%s folder",InpDstName,common,InpDstDirectory);
      //--- файл не существует, перемещение нужно проводить без флага FILE_REWRITE
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("%s file moved",InpSrcName);
      else
         PrintFormat("Error! Code = %d",GetLastError());
     }
//--- теперь файл перемещен, проверим это
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("Success!");
   else
      Print("Error!");
  }
The20sv0.20 The20sv0.20

Семафорный трендовый сигнальный индикатор

Demo_FileDelete Demo_FileDelete

Скрипт демонстрирует пример использования функции FileDelete()

Demo_FileFlush Demo_FileFlush

Скрипт демонстрирует пример использования функции FileFlush()

i-IntradayFibonacci i-IntradayFibonacci

Внутридневные уровни Фибоначчи