Symbian中关于字符串的处理的类主要有TDes、TDesC、TPtr、TPtrC、TBuf、TBufC、HBufC....
1.TDesC
下面代码创建一个TDesC描述符:
TDesC &heyRef = _L("Hey");
代码运行时,首先通过宏_L把字符串转为TPtrC指针,然后赋值给TDesC的引用heyRef. 可以等同于下面的代码:
_LIT(KKey,"Hey");
TDesC &heyRef = KKey;
目前大多数情况下使用_LIT宏,效率高。
TDesC类中常用的几个函数有:
Length();返回数据长度
Size();返回包含数据字节的大小
Ptr();返回描述符表示的数据指针
Left(TInt aLength);返回从左边开始长度为aLength的数据.若aLength=0,则产生错误,若aLength大于实际长度则返回全部数据
Right(TInt aLength)同上
Mid(TInt aPos);返回从aPos开始到结束的数据,aPos=0表示从第一个数据开始
Mid(TInt aPos,TInt aLength);返回从aPos开始长度为aLength的数据,aPos=0表示从第一个数据开始
operator[](TInt anIndex);返回索引值anIndex位置的数据
Alloc();创建一个HBuffC类型,内容为描述符中的数据
AllocL();创建一个HBuffC类型,内容为描述符中的数据,如果创建失败抛出异常
AllocLC();创建一个HBuffC类型,内容为描述符中的数据,如果创建失败抛出异常,并清除栈
Compare(const TDesC16&aDes);把参数aDes和当前描述符中的数据进行比较。
2.TDes类
TDes类和TDesC雷系,但TDes中的数据可以修改。主要函数有
MaxLength();返回描述符可以包含数据的最大值
SetLength();设置描述符可以包含数据的最大值
void Zero(); 设置数据的长度为0
Copy(const TDesC8& aDes):复制参数aDes中的数据到当前的描述符,当前的数据将被覆盖
Copy(const TUint16 *aBuf,TInt aLength):复制指针aBuf中的数据到当前的描述符,当前的数据将被覆盖,数据的长度有aLength决定
Insert(TInt aPos,construction TDesC16& aDes);把参数aDes表示的数据插入到位置aPos,最后总长度不应超过最大的长度,否则出错
Replace(TInt aPos,const TDesC16& aDes);用aDes中的数据替换当前描述符中从位置aPos开始,长度为aLength的数据
Swap(TDes16& aDes );把参数aDes和当前描述符汇总的数据进行交换
Delete(TInt aPos,TInt aLength);删除从aPos开始长度为aLength的数据
TrimRight();删除结尾的空字符
Trim();删除结尾和开始的空字符
TrimAll();删除结尾和开始的空字符,中间连续的空字符用一个空字符代替
Append(constructionTDesC16 & aDes):把aDes中的数据添加到当前描述符的末尾
Fill(TChar aChar);用字符aChar填充数据
LowerCase();转化为小写
UpperCase();转化为大写