Показать сообщение отдельно
Старый 29.06.2007, 08:27   #14  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Может это поможет:
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)
конечно проблемно выглядит разделитель "зк" но его можно отбросить с самого начала
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/