Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Размести программу в Маркете - это 7 миллионов потенциальных клиентов
Rater
14
Rater 2012.08.27 18:13 

Столкнулся при написании индикатора с тем что не работает смещение при поиске в строке функцией StringFind.

Будто поиск идёт всё время с начала строки независимо от значения третьего параметра функции.

int StringFind( string text, string matched_text, int start=0)

start - Position in the string to start search from.

Кто-то сталкивался с подобным или это у меня что-то не так? Функция выполняется в функции init.

Рустам
3604
Рустам 2012.08.27 18:18  
код в студию
Rater
14
Rater 2012.08.28 05:38  

Сорри! Всё работает - поздно наверно уже было.

Код такой (разбивает параметр SymbolName вида "EURUSD,GBPUSD,EURGBP" на отдельные значения в массив SymbolsArr):

int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   int j=StringFind(SymbolName,",");
     if (j!=-1){
     SymbolsArr[SymCount]=Trim(StringSubstr(SymbolName,0,j));
     int j2=StringFind(SymbolName,",",j+1);
       while (j2!=-1){
         SymCount++;
         SymbolsArr[SymCount]=Trim(StringSubstr(SymbolName,j+1,j2-j-1));
         j=j2;
         j2=StringFind(SymbolName,",",j+1);
       } 
     SymCount++;
   }
   SymbolsArr[SymCount]=Trim(StringSubstr(SymbolName,j+1));

   return(0);
  }
//===================
string Trim(string text){
   return(StringTrimRight(StringTrimLeft(text)));
} 
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий