本文整理汇总了C++中CNativeW::capacity方法的典型用法代码示例。如果您正苦于以下问题:C++ CNativeW::capacity方法的具体用法?C++ CNativeW::capacity怎么用?C++ CNativeW::capacity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNativeW
的用法示例。
在下文中一共展示了CNativeW::capacity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReplaceData
//.........这里部分代码省略.........
CModifyVisitor().SetLineModified(pCDocLine, pArg->nDelSeq);
// 削除される行のマーク類を保存
markNext = pCDocLineNext->m_sMark;
bSetMark = true;
}
/* 次の行 行オブジェクトの削除 */
m_pcDocLineMgr->DeleteLine( pCDocLineNext );
pCDocLineNext = NULL;
/* 削除した行の総数 */
++(pArg->nDeletedLineNum);
}else{
/* 行内データ削除 */
CNativeW tmp;
tmp.SetString(pLine, nWorkPos);
pCDocLine->SetDocLineStringMove(&tmp);
CModifyVisitor().SetLineModified(pCDocLine, pArg->nDelSeq); /* 変更フラグ */
}
}
else{
/* 行内だけの削除 */
if( pArg->pcmemDeleted ){
CLineData tmp;
pArg->pcmemDeleted->push_back(tmp);
CLineData& delLine = pArg->pcmemDeleted->back();
delLine.cmemLine.SetString(&pLine[nWorkPos], nWorkLen);
delLine.nSeq = CModifyVisitor().GetLineModifiedSeq(pCDocLine);
}
{// 20020119 aroka ブロック内に pWork を閉じ込めた
// 2002/2/10 aroka CMemory変更 何度も GetLength,GetPtr をよばない。
int nNewLen = nLineLen - nWorkLen + nInsLen;
int nAfterLen = nLineLen - (nWorkPos + nWorkLen);
if( pCDocLine->_GetDocLineData().capacity() * 9 / 10 < nNewLen
&& nNewLen <= pCDocLine->_GetDocLineData().capacity() ){
CNativeW& ref = pCDocLine->_GetDocLineData();
WCHAR* pBuf = const_cast<WCHAR*>(ref.GetStringPtr());
if( nWorkLen != nInsLen ){
wmemmove(&pBuf[nWorkPos + nInsLen], &pLine[nWorkPos + nWorkLen], nAfterLen);
}
wmemcpy(&pBuf[nWorkPos], pInsData, nInsLen);
ref._SetStringLength(nNewLen);
}else{
int nBufferSize = 16;
if( 1000 < nNewLen ){
nBufferSize = 1000;
while( nBufferSize < nNewLen ){
nBufferSize += nBufferSize / 20; // 5%づつ伸ばす
}
}
CNativeW tmp;
tmp.AllocStringBuffer(nBufferSize);
tmp.AppendString(pLine, nWorkPos);
tmp.AppendString(pInsData, nInsLen);
tmp.AppendString(&pLine[nWorkPos + nWorkLen], nAfterLen);
pCDocLine->SetDocLineStringMove(&tmp);
}
}
if( bChangeOneLine ){
pArg->nInsSeq = CModifyVisitor().GetLineModifiedSeq(pCDocLine);
CModifyVisitor().SetLineModified(pCDocLine, nSetSeq);
pArg->ptNewPos.x = pArg->ptNewPos.x + nInsLen;
bInsOneLine = true;
pInsData = L"";
nInsLen = 0;
}else{