[4028]
コードのメンテ4
dskoba
CMemory::MemCharNext()は全箇所(?)で
int nCharChars = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
のように指定した箇所の文字が何バイト文字かを調べるのに使っているので,新しく関数を用意する。
int CMemory::GetSizeOfChar( const char* pData, const int nDataLen, const int nIdx )
{
if( nIdx >= nDataLen ){
return 0;
}else if( nIdx == (nDataLen - 1) ){
return 1;
}
//if( pData[nIdx] == '\0' ){
// return 1;
//}
if( _IS_SJIS_1( reinterpret_cast<const unsigned char*>(pData)[nIdx] )
&& _IS_SJIS_2( reinterpret_cast<const unsigned char*>(pData)[nIdx+1] ) ){
return 2;
}
return 1;
}