Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2021
- Рейтинг:
- Опубликован:
- 2013.03.27 14:35
- Обновлен:
- 2016.11.22 07:33
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Скрипт пытается выполнить попытку перемещения файла источника из поддиректории в локальной папке терминала в файл приемник в поддиректорию в общей папке всех клиентских терминалов. Имена файлов и поддиректорий указываются во входных параметрах скрипта. Местоположения локальной папки терминала и общей папки всех клиентских терминалов можно получить при помощи вызова функции 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!"); }

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

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

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

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