拆分的基本思想就是反覆使用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;