Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2185
- Рейтинг:
- Опубликован:
- 2013.03.26 08:51
- Обновлен:
- 2016.11.22 07:33
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Скрипт перебирает все текстовые файлы в локальной папке терминала и удаляет те из них, дата создания которых меньше чем значение даты во входном параметре "InpFilesDate". Местоположение локальной папки терминала можно получить при помощи вызова функции TerminalInfoString().
PrintFormat("Путь к локальной папке терминала: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
Важно: Скрипт удалит из локальной папки терминала все текстовые файлы, которые созданы раньше 1 января 2010 года (значение параметра InpFilesDate по умолчанию). Поэтому перед его запуском убедитесь, что у вас нет текстовых файлов с важной информацией в локальной папке терминала.
Код:
//--- покажем окно входных параметров при запуске скрипта #property script_show_inputs //--- дата для старых файлов input datetime InpFilesDate=D'2010.01.01 00:00'; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string file_name; // переменная для хранения имен файлов string filter="*.txt"; // фильтр для поиска файлов datetime create_date; // дата создания файла string files[]; // список имен файлов int def_size=25; // размер массива по умолчанию int size=0; // количество файлов //--- выдели память для массива ArrayResize(files,def_size); //--- получение хэндла поиска в корне локальной папки long search_handle=FileFindFirst(filter,file_name); //--- проверим, успешно ли отработала функция FileFindFirst() if(search_handle!=INVALID_HANDLE) { //--- в цикле перебираем файлы do { files[size]=file_name; //--- увеличим размер массива size++; if(size==def_size) { def_size+=25; ArrayResize(files,def_size); } //--- сбрасываем значение ошибки ResetLastError(); //--- получим дату создания файла create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false); //--- проверим, старый ли файл if(create_date<InpFilesDate) { PrintFormat("Файл %s удален!",file_name); //--- удаляем старый файл FileDelete(file_name); } } while(FileFindNext(search_handle,file_name)); //--- закрываем хэндл поиска FileFindClose(search_handle); } else { Print("Files not found!"); return; } //--- проверим какие из файлов остались PrintFormat("Результаты:"); for(int i=0;i<size;i++) { if(FileIsExist(files[i])) PrintFormat("Файл %s существует!",files[i]); else PrintFormat("Файл %s удален!",files[i]); } }

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

Скрипт является простым примером использования функций FileFindFirst(), FileFindNext() и FileFindClose()

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

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