Скачать MetaTrader 5

StringSplit

Получает из указанной строки подстроки по заданному разделителю и возвращает количество полученных подстрок.

int  StringSplit(
   const string   string_value,       // строка для поиска подстрок
   const ushort   separator,          // разделитель, по которому в строке будут искаться подстроки
   string         & result[]          // массив, переданный по ссылке, для получения найденных подстрок
   );

Параметры

string_value

[in]  Строка, из которой необходимо получить подстроки. Сама строка при этом не изменяется.

pos

[in]  Код символа разделителя. Для получения кода можно использовать функцию StringGetCharacter().

result[]

[out]  Массив строк, в который помещаются полученные подстроки.

Возвращаемое значение

Количество полученных строк в массиве result[]. Если разделитель в переданной строке не найден, то в массив будет помещена только одна исходная строка.

Если строка string_value пустая или NULL, то функция вернет ноль. В случае ошибки функция вернет -1. Для получения кода ошибки нужно вызвать функцию GetLastError().

Пример:

string to_split="_мама_мыла_раму_"// строка для разбивки на подстроки
   string sep="_";                  // разделитель в виде символа
   ushort u_sep;                    // код символа разделителя
   string result[];                 // массив для получения строк
   //--- получим код разделителя
   u_sep=StringGetCharacter(sep,0);
   //--- разобьем строку на подстроки
   int k=StringSplit(to_split,u_sep,result);
   //--- выведем комментарий 
   PrintFormat("Получено строк: %d. Использован разделитель '%s' с кодом %d",k,sep,u_sep);
   //--- теперь выведем все полученные строки
   if(k>0)
     {
      for(int i=0;i<k;i++)
        {
         PrintFormat("result[%d]=\"%s\"",i,result[i]);
        }
     }

Смотри также

StringReplace(), StringSubstr(), StringConcatenate()


Обновлено: 2015.12.03