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

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

Просмотров:
2117
Рейтинг:
(33)
Опубликован:
2013.03.26 08:51
Обновлен:
2016.11.22 07:33
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Скрипт демонстрирует пример использования функции 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 Demo_FileFind

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

FigurelliSeries FigurelliSeries

Индикатор, позволяющий определять направление тренда

Demo_FileDelete Demo_FileDelete

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

The20sv0.20 The20sv0.20

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