作者在 2009-10-13 17:16:51 发布以下内容
void CAaaaDlg::TruncateString(CString input, CStringArray& strArray, int length)
{
int len = input.GetLength() ;
BYTE* flag = new BYTE[len];
memset(flag,0,len);
BYTE f = 0;
for(int i=0;i<len;i++)
{
if((BYTE)input.GetAt(i) > 0xa0)
f++;
else
f = 0;
flag[i] = f;
}
long nowLen = 0;
long oldLen = 0;
while(nowLen < len)
{
oldLen = nowLen;
nowLen += length;
if(nowLen > len)
nowLen = len;
if(flag[nowLen-1]%2 == 1 && (nowLen+1) <= len)
nowLen++;
strArray.Add(input.Mid(oldLen,nowLen-oldLen));
}
delete[] flag; flag = NULL;
}