Опять массивы и циклы. Нужна помощь!

 

Простой вопрос:

Например: Каждые пять минут, нужно выдавать аудио сообщение3 раза. Каждые пять минут это когда Minute() == {0 или 5 или 10 или 15 или 20 или 25 или 30 и тд....}

Зараннее всем благодарен!

 
Inter писал(а) >>

Простой вопрос:

Например: Каждые пять минут, нужно выдавать аудио сообщение3 раза. Каждые пять минут это когда Minute() == {0 или 5 или 10 или 15 или 20 или 25 или 30 и тд....}

Зараннее всем благодарен!

bool NevBar(){
  static int PrevTime=0;
  if (PrevTime==iTime(Symbol(),PERIOD_M5,0)) return(false);
  PrevTime=iTime(Symbol(),PERIOD_M5,0);
  return(true);
}

int start(){
  if (NevBar()) {Alert("И зачем это надо"), Alert("И зачем это надо"), Alert("И зачем это надо");}

// Прочий код

  return(0);
}
Можно так сделать
 

Или так

if(MathMod(Minute(),5)==0) {
   PlaySound("alert.wav");
   PlaySound("alert.wav");
   PlaySound("alert.wav");
}
 
Talex писал(а) >>

Или так

С PlaySound() так не получится. Надо ждать когда предыдущий сигнал закончит свою работу (в смысле звуковой)

 
Vinin, по идее получится, если после каждой playspund использовать Sleep() с параметром равным протяженности музыки
 
Techno писал(а) >>
Vinin, по идее получится, если после каждой playspund использовать Sleep() с параметром равным протяженности музыки

Надо использовать флаги. Sleep() использовать нельзя. Советник или индикатор должен дальше работать.

Первый раз запускать на каждой пятиминутке, второй раз по истечении заданного времени, третий раз опять так же. Но советник должен работать.

 
Vinin писал(а) >>

Надо использовать флаги. Sleep() использовать нельзя. Советник или индикатор должен дальше работать.

Первый раз запускать на каждой пятиминутке, второй раз по истечении заданного времени, третий раз опять так же. Но советник должен работать.

конечно должен работать, но единственный выход выполнить пожелание автора темы это использовать Sleep, а так эта функция вообще не нужна

 
Techno >>:

конечно должен работать, но единственный выход выполнить пожелание автора темы это использовать Sleep, а так эта функция вообще не нужна


Вы неправильно поняли Vininа он как раз и говорил как можно без слипа обойтись.
 
SofTAA писал(а) >>

Вы неправильно поняли Vininа он как раз и говорил как можно без слипа обойтись.

ну и как же обойтись? Задача проиграть подряд 3 звуковых файла, причем полностью, давай, слушаю варианты... (в виде кода)

 
Techno >>:

ну и как же обойтись? Задача проиграть подряд 3 звуковых файла, причем полностью, давай, слушаю варианты... (в виде кода)


Не понимаю, что в этом сложного. Держи код который не блокирует советник. 
datetime StartPlay;
int length = 1; //длина трека в секундах 

int start()
{ 
  if(TimeCurrent() - StartPlay > length)
  {
    PlaySound("alert.wav");
    StartPlay = TimeCurrent()
  }  
  return(0);
}
 
SofTAA писал(а) >>

Не понимаю, что в этом сложного. Держи код который не блокирует советник.

оо, отлично, да вот только неувязочка, нужно проиграть 3 подряд, сразу. А в данном случае если между тиками будет интервал в 10 секунд, то после поигрывания первого раза будет перерыв в 10 секунд