使用Symbain OS字符串描述符编程(上)(转)

1. 简介

  当我刚开始学习Symbian时,我遇到的第一件事情就是Symbian OS字符串的处理和使用问题。要学习Symbian字符串的使用,必须费一定脑筋才行。但是一旦你掌握了其中的要领,它就变得容易多了。
  因此,下面我将解释我是怎样学习基本的Symbian OS字符串处理并对之加以记忆的。

  注意,理解本文的前提是对Symbian操作系统的工作机理有一定了解。

  2. 背景

  你要做的第一件事情是记住字符串描述符层次结构图。这是很重要的,因为以后所有你要使用的五个描述符都派生于某些类,你必须了解它们分别是从哪些类派生的,以便确定应该使用哪些特别描述符及其使用场所。本文中我不准备解释什么是缓冲描述符及堆描述符的含义,以及可修改的描述符和不可修改的描述符是什么含义。但是,我相信你必须对上面的术语有足够的了解才行。Symbian描述符层次结构看起来相当绝妙。你可以参考下图,该图来源于newlc。

  3. TPtrC用法

  其字面含义是"一个指向不可被操作的数据的指针"。关于TPtrC,首先要记住,它不包含对自己的一些操作函数,而只含有构造器和设置方法。另外,既然它派生于TDesC,它就包含了TDesC的所有功能。

  指针指向数据的方式有下面两种:

  ·先创建一个空的TPtrC,然后用Set(...)函数把它指向一些数据。

  ·通过使用任何一个重载的构造函数,在构造过程中传递数据。

  让我们通过下面几个例子来看一下上面的描述:

  实例1:-从TBuf和TbufC中取得TPtrC:



LIT(KText , "Test Code");
TBufC<10> Buf ( KText ); OR(/) TBuf<10> Buf ( KText );
// 使用构造器创建TPtr
TPtrC Ptr (Buf);
//使用成员函数创建TPtr
TPtrC Ptr1;
Ptr1.Set(Buf);



  实例2:-从TText*中取得TPtrC:

  下面的实例使用了TText16:



TText * text = _S("Hello World ");
TPtrC ptr(text);
// 或
TPtrC Ptr1;
Ptr1.Set(text);
//要只存储Ttext的一部分,我们可以使用下面的语句
//这个描述符指针将只存储Hello
TPtrC ptr4(text,5);



  实例3:-从另外一个TPtrC取得TPtrC:

  你可以容易地把一个TPtrC赋值给另一个TPtrC。


TText * text = _S("Hello World ");
TPtrC ptr(text);
//从另外一个TPtrC取得TPtrC
TPtrC p1(ptr);
//或
TPtrC p2;
p2.Set(ptr);



  实例4:-从TPtrC中取得TText *:

  我们可以通过Ptr()成员使用来从TPtrC中取得TText *。



//设置TPtrC
_LIT(KText,"Test Code");
TBufC<10> Buf ( KText );
TPtrC Ptr1 (Buf);
//取得TText*
TText* Text1 = (TText *)Ptr1.Ptr();

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126457/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-126457/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值