Может это поможет:
X++:
container str2con_MY(str _string, str _separator = ",", boolean _multiSeparator = False)
{
container con;
int pos, oldPos = 1;
str strTemp1;
str symbol;
;
if(_multiSeparator)
{
do
{
symbol = subStr(_string, oldPos, 1);
if(strfind(_separator,symbol,1,strlen(_separator)) || !symbol)
{
con += strTemp1;
strTemp1 = "";
}
else
{
strTemp1 = strTemp1 + symbol;
}
oldPos++;
}
while (symbol);
}
else
{
do
{
pos = strScan(_string, _separator, pos ? pos + strLen(_separator) : 1, strLen(_string));
con += subStr(_string, oldPos, pos ? pos - oldPos : strLen(_string) + 1 - oldPos);
oldPos = pos + strLen(_separator);
}
while (pos);
}
return con;
}
В принципе это стандартная функция, но она позволяет указать несколько разделителей, по которым формируются элементы контейнера.
Пример вызова например так:
X++:
str2con_MY("зк1234567/1P1", "зк/P", True)
конечно проблемно выглядит разделитель "зк" но его можно отбросить с самого начала