拆分的基本思想就是反复使用CString::find("");CString::left(void);CString::right()三个函数。下面是一个本人应用的实例:
CString str = "3;1.000,1.000,50.000;2.000,2.000,60.000;4.000,4.000,70.000;";
//获取第一个字符(数据个数)
int length = str.Find(";");
CString temp;
CString lengthPointStr = str.Left(length);
int tempInt = atoi(lengthPointStr.GetBuffer(lengthPointStr.GetLength()));
//将各个用“;”隔开的数据放置在strPoint[]内
CString *strPoint = new CString[tempInt];
str = str.Right(str.GetLength()-length-1);
for (int i=0;i<tempInt;i++)
{
length = str.Find(";");
strPoint[i] = str.Left(length);
str = str.Right(str.GetLength()-length-1);
}
//各数据内部的全部属性值放置在strAtrr二维数组内
CString (*strAtrr)[3] = new CString[tempInt][3];
int j,k;
for (j=0;j<tempInt;j++)
{
for(k=0;k<2;k++){
length = strPoint[j].Find(",");
strAtrr[j][k] = strPoint[j].Left(length);
strPoint[j] = strPoint[j].Right(strPoint[j].GetLength()-length-1);
}
strAtrr[j][k]=strPoint[j];
}
/***************完毕*********************/
//释放堆内存
delete []strPoint;
delete []strAtrr;