Пример #1
0
void DwDispositionType::Parse()
{
    mIsModified = 0;
    mDispositionType = DwMime::kDispTypeNull;
    mDispositionTypeStr = "";
    if(mFirstParameter)
    {
        DeleteParameterList();
    }
    if(mString.length() == 0) return;
    DwRfc1521Tokenizer tokenizer(mString);
    int found = 0;
    while(!found && tokenizer.Type() != eTkNull)
    {
        if(tokenizer.Type() == eTkToken)
        {
            mDispositionTypeStr = tokenizer.Token();
            found = 1;
        }
        ++tokenizer;
    }
    // Get parameters
    DwTokenString tokenStr(mString);
    while(1)
    {
        // Get ';'
        found = 0;
        while(!found && tokenizer.Type() != eTkNull)
        {
            if(tokenizer.Type() == eTkTspecial
                    && tokenizer.Token()[0] == ';')
            {
                found = 1;
            }
            ++tokenizer;
        }
        if(tokenizer.Type() == eTkNull)
        {
            // No more parameters
            break;
        }
        tokenStr.SetFirst(tokenizer);
        // Get attribute
        DwString attrib;
        int attribFound = 0;
        while(!attribFound && tokenizer.Type() != eTkNull)
        {
            if(tokenizer.Type() == eTkToken)
            {
                attrib = tokenizer.Token();
                attribFound = 1;
            }
            ++tokenizer;
        }
        // Get '='
        found = 0;
        while(!found && tokenizer.Type() != eTkNull)
        {
            if(tokenizer.Type() == eTkTspecial
                    && tokenizer.Token()[0] == '=')
            {
                found = 1;
            }
            ++tokenizer;
        }
        // Get value
        int valueFound = 0;
        while(!valueFound && tokenizer.Type() != eTkNull)
        {
            if(tokenizer.Type() == eTkToken
                    || tokenizer.Type() == eTkQuotedString)
            {
                valueFound = 1;
            }
            ++tokenizer;
        }
        if(attribFound && valueFound)
        {
            tokenStr.ExtendTo(tokenizer);
            DwParameter *param =
                DwParameter::NewParameter(tokenStr.Tokens(), this);
            param->Parse();
            _AddParameter(param);
        }
    }
    StrToEnum();
}
void CGumpPicture::SetPictureTypeStr(CString strType)
{
	m_eType = (TYPE)StrToEnum(strType, m_szPictureType,  NUM_TYPE, m_eType);
}
Пример #3
0
void DwDispositionType::SetDispositionTypeStr(const DwString &aStr)
{
    mDispositionTypeStr = aStr;
    StrToEnum();
    SetModified();
}