Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Demo_FileCopy - скрипт для MetaTrader 5
- Просмотров:
- 2117
- Рейтинг:
- Опубликован:
- 2013.03.26 08:51
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Скрипт демонстрирует пример использования функции FileCopy(). Для этого производится копирование содержимого одного файла в другой. Для успешного копирования в локальной папке терминала должен находиться файл источник, чье имя указывается во входном параметре "InpSrc". Местоположение локальной папки терминала можно получить при помощи вызова функции TerminalInfoString().
PrintFormat("Путь к локальной папке терминала: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));Сначала скрипт пытается отобразить содержимое файлов. Если файл приемник не существует, то копирование функцией FileCopy() нужно проводить без использования флага FILE_REWRITE. Если же файл приемник уже был создан, то для успешного копирования флаг FILE_REWRITE должен использоваться.
Код:
//--- покажем окно входных параметров при запуске скрипта #property script_show_inputs //--- входные параметры input string InpSrc="source.txt"; // источник input string InpDst="destination.txt"; // копия input int InpEncodingType=FILE_ANSI; // ANSI=32 или UNICODE=64 //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- отобразим содержимое источника (он должен существовать) if(!FileDisplay(InpSrc)) return; //--- проверим, существует ли уже файл копии (не обязан быть создан) if(!FileDisplay(InpDst)) { //--- файл копии не существует, копирование без флага FILE_REWRITE (правильное копирование) if(FileCopy(InpSrc,0,InpDst,0)) Print("File is copied!"); else Print("File is not copied!"); } else { //--- файл копии уже существует, попробуем скопировать без флага FILE_REWRITE (неправильное копирование) if(FileCopy(InpSrc,0,InpDst,0)) Print("File is copied!"); else Print("File is not copied!"); //--- содержимое файла InpDst останется прежним FileDisplay(InpDst); //--- скопируем еще раз с флагом FILE_REWRITE (правильное копирование при существовании файла) if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE)) Print("File is copied!"); else Print("File is not copied!"); } //--- получили копию файла InpSrc FileDisplay(InpDst); } //+------------------------------------------------------------------+ //| Чтение содержимого файла | //+------------------------------------------------------------------+ bool FileDisplay(const string file_name) { //--- сбросим значение ошибки ResetLastError(); //--- откроем файл int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType); if(file_handle!=INVALID_HANDLE) { //--- отобразим в цикле содержимое файла Print("+---------------------+"); PrintFormat("File name = %s",file_name); while(!FileIsEnding(file_handle)) Print(FileReadString(file_handle)); Print("+---------------------+"); //--- закроем файл FileClose(file_handle); return(true); } //--- не удалось открыть файл PrintFormat("%s is not opened, error = %d",file_name,GetLastError()); return(false); }
Demo_FileFind
Скрипт является простым примером использования функций FileFindFirst(), FileFindNext() и FileFindClose()
FigurelliSeriesИндикатор, позволяющий определять направление тренда
Demo_FileDelete
Скрипт демонстрирует пример использования функции FileDelete()
The20sv0.20Семафорный трендовый сигнальный индикатор