本文整理汇总了C++中CItemList::SetAt方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemList::SetAt方法的具体用法?C++ CItemList::SetAt怎么用?C++ CItemList::SetAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemList
的用法示例。
在下文中一共展示了CItemList::SetAt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddNextSentItem
//.........这里部分代码省略.........
( LItem.pItem - m_pCurrFrag->pTextStart );
ItemList.AddTail( LItem );
++Item.pItem;
--TokenLen;
}
else
{
break;
}
}
//--- Get primary item insert position
SPLISTPOS ItemPos = ItemList.AddTail( Item );
//--- Split off trailing punction if any.
static const WCHAR EOSItems[] = { L'.', L'!', L'?' };
static const WCHAR TrailItems[] = { L',', L'\"', L';', L':', L')', L'}', L'\'', L']' };
SPLISTPOS NextPos = NULL;
BOOL fIsEOS = false;
while( TokenLen > 1 )
{
BOOL fAddTrailItem = false;
if( SearchSet( *pTrailChar, EOSItems, sp_countof(EOSItems), &ulIndex ) )
{
fIsEOS = true;
fAddTrailItem = true;
}
else if( SearchSet( *pTrailChar, TrailItems, sp_countof(TrailItems), &ulIndex ) )
{
fAddTrailItem = true;
}
if( fAddTrailItem )
{
CSentItem TItem;
TItem.pItem = pTrailChar;
TItem.ulItemLen = 1;
TItem.pXmlState = &m_pCurrFrag->State;
TItem.ulItemSrcLen = TItem.ulItemLen;
TItem.ulItemSrcOffset = m_pCurrFrag->ulTextSrcOffset +
( TItem.pItem - m_pCurrFrag->pTextStart );
NextPos = ItemList.InsertAfter( ItemPos, TItem );
--TokenLen;
--pTrailChar;
}
else
{
break;
}
}
//--- Abreviation or sentence end?
// If we are at the end of the buffer then EOS is implied.
if( *m_pNextChar == NULL )
{
fIsEOS = true;
if( !SearchSet( *(m_pNextChar-1), EOSItems, sp_countof(EOSItems), &ulIndex ) )
{
//--- Terminate with a period if we are at the end of a buffer
// and no end of sentence punction has been added.
static const WCHAR* pPeriod = L".";
CSentItem EOSItem;
EOSItem.pItem = pPeriod;
EOSItem.ulItemLen = 1;
EOSItem.pXmlState = &m_pCurrFrag->State;
EOSItem.ulItemSrcLen = EOSItem.ulItemLen;
EOSItem.ulItemSrcOffset = m_pCurrFrag->ulTextSrcOffset +
( (m_pNextChar-1) - m_pCurrFrag->pTextStart );
ItemList.AddTail( EOSItem );
}
}
else if( pTrailChar[1] == L'.' )
{
//--- Here is where you would try to prove that it's not EOS
// It might be an abreviation. That's a hard problem that
// we are not going to attempt here.
}
//--- Substitute underscore for apostrophe
for( ULONG i = 0; i < TokenLen; ++i )
{
if( Item.pItem[i] == L'\'' )
{
((WCHAR)Item.pItem[i]) = L'_';
}
}
//--- Add the main item
if( TokenLen > 0 )
{
Item.ulItemLen = TokenLen;
Item.pXmlState = &m_pCurrFrag->State;
Item.ulItemSrcLen = Item.ulItemLen;
Item.ulItemSrcOffset = m_pCurrFrag->ulTextSrcOffset +
( Item.pItem - m_pCurrFrag->pTextStart );
ItemList.SetAt( ItemPos, Item );
}
return fIsEOS;
} /* CTTSEngObj::AddNextSentItem */