void Package::removeItems(const char *pattern) { int32_t index; findItems(pattern); while((index=findNextItem())>=0) { removeItem(index); } }
void Package::extractItems(const char *filesPath, const char *pattern, char outType) { int32_t index; findItems(pattern); while((index=findNextItem())>=0) { extractItem(filesPath, index, outType); } }
void TreeWidget::moveToNextActiveItem() { QTreeWidgetItem* item = findNextItem(currentItem(), 1, TreeRole::Badge); if (item) setCurrentItem(item); }
bool CBigStashPaser::parsePage( CBigStashPage& ar_oPage ) { if( m_nIndex >= m_nDataLength ) { return false; } /// 跳过页首 m_nIndex += g_scnPageHeaderLength; int lo_nNextPage = findNextPageHeader(); if( lo_nNextPage < 0 ) { lo_nNextPage = m_nDataLength; } int lo_nPageEnd = lo_nNextPage; unsigned short lo_sItemSize = getShortValue( m_pBigStashDatas, m_nDataLength, m_nIndex ); m_nIndex += 2; if( lo_sItemSize > 0 ) { ar_oPage.ItemSize(lo_sItemSize); int lo_nStartItem = findNextItem( m_nIndex, lo_nPageEnd ); if( lo_nStartItem < 0 ) { AfxMessageBox("未找到任何物品信息"); return false; } for( unsigned i = 0; i < ar_oPage.ItemSize(); ++i ) { if( lo_nStartItem >= lo_nPageEnd ) { CString lo_strErrorInfo; lo_strErrorInfo.Format(_T("物品%d解析错误"), i ); AfxMessageBox(lo_strErrorInfo); return false; } CBigStashItem lo_oItem; int lo_nNextItem = findNextItem( lo_nStartItem+sizeof(g_scbItemIdentifiedHeader)/sizeof(g_scbItemIdentifiedHeader[0]), lo_nPageEnd ); BYTE lo_bLocation = m_pBigStashDatas[lo_nNextItem+7]&0x1C; while( lo_bLocation == 0x18 ) { lo_nNextItem = findNextItem( lo_nNextItem+sizeof(g_scbItemIdentifiedHeader)/sizeof(g_scbItemIdentifiedHeader[0]), lo_nPageEnd ); if( lo_nNextItem < 0 ) { break; } lo_bLocation = m_pBigStashDatas[lo_nNextItem+7]&0x1C; } if( lo_nNextItem < 0 ) { lo_nNextItem = lo_nPageEnd; } if( i == ar_oPage.ItemSize()-1 && lo_nNextItem != lo_nPageEnd ) { AfxMessageBox(_T("物品信息解析错误")); return false; } int lo_nItemBufferSize = lo_nNextItem-lo_nStartItem; lo_oItem.setItemBuffer( m_pBigStashDatas, lo_nStartItem, lo_nItemBufferSize ); lo_nStartItem = lo_nNextItem; ar_oPage.setItem( i, lo_oItem ); } } m_nIndex = lo_nPageEnd; return true; }