`
csstome
  • 浏览: 1521132 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Symbian C++ 各种类型之间的转换

阅读更多

1.TTime转TBuf型

TBuf<32> theTime;//存储转换后的时间
TTime tt;
tt.HomeTime();
_LIT(KTimeFormat,"%Y%M%D%1-%2-%3 %H:%T:%S");//格式为:2006-03-04 12:12:12
tt.FormatL(theTime,KTimeFormat);//FormatL()会以KTimeFormat字符串的形式来格式化时间在赋值给theTime

2. TDateTime转TBuf型

TTime currentTime;//声明一个TTime类型
currentTime.HomeTime();//设置TTime为当前时间
TDateTime tdt=currentTime.DateTime();//TTime ---> TDateTime
TBuf<32> tmp;//存储转换完的Buf
tmp.AppendNum(tdt.Year());//用AppendNum()方法将一个Tint加入到TBuf中。
_LIT(gang,"-");//声明一个横线分隔年月日,同样可声明冒号分隔小时分秒
tmp.Append(gang);
tmp.AppendNum(tdt.Month());
tmp.Append(gang);
tmp.AppendNum(tdt.Day());…………时分秒的转换同上

3. TBuf转Tint型

// 15位数字
TInt iNum1(123456789009876);
// 将缓存的内容设置为iNum1
iBuf.Num(iNum1);
// 使用iBuf包含的内容创建TLex对象
// the 15 digit number
TLex iLex(iBuf);
// iNum1
TInt iNum2;
//iNum2现在包含了15位数字
iLex.Val(iNum2);

4. Tint转TBuf型

TBuf<10>tmp;
Tint ti=190;
Tmp.AppendNum(ti);

5. TBuf转TDateTime型

将长的TBuf截成小段,分别是年月日时分秒,通过下面TBuf转TInt ,再分别把转换成TInt的年月日取出,通过TDateTime的setYear(),setMonth()等方法将时间set进TDateTime

6. 其他转换

TBuf 转换为 TPtrC16

TBuf<32> tText(_L("2004/11/05 05:44:00"));
TPtrC16 tPtrSecond=tText.Mid(17,2);

TPtrC16 转换为 TBufC16

TPtrC16 tPtrSecond=tText.Mid(17,2);
TBufC16<10> bufcs(tPtrSecond);

TBufC16 转换为 TPtr16

TBufC16<10> bufcs(tPtrSecond);
TPtr16 f=bufcs.Des();

TPtr16 转换为 TBuf

TBuf<10> bufSecond;
bufSecond.Copy(f);

TBuf 转换为 TPtr16

TBuf<10> bufSecond(_L("abc"));
TPtr16 f;
f.Copy(bufSecond);

TBuf 转换为 TInt

TInt aSecond;
TLex iLexS(bufSecond);
iLexS.Val(aSecond);

TInt 转换为 TBuf

TBuf<32> tbuf;
TInt i=200;
tbuf.Num(i);

memset主要应用是初始化某个内存空间。用来对一段内存空间全部设置为某个字符。
memcpy是用于COPY源空间的数据到目的空间中,用来做内存拷贝可以拿它拷贝任何数据类型的对象。
strcpy只能拷贝字符串了,它遇到'\0'就结束拷贝。

以下是S60的数据类型转换(巨有用)

1.串转换成数字

TBuf16<20> buf(_L( "123" ) );
TLex lex( buf );
TInt iNum;
lex.Val( iNum );

2.数字转换成串

TBuf16<20> buf;
TInt iNum = 20;
buf.Format( _L( "%d" ) , iNum );

3.将symbian串转换成char串

char* p = NULL;
TBuf8<20> buf( _L( "aaaaa" ) );
p = (char *)buf.Ptr();

4.UTF-8转换成UNICODE

CnvUtfConverter::ConvertToUnicodeFromUtf8( iBuf16 , iBuf8 );

5.UNICODE转换成UTF-8

CnvUtfConverter::ConvertFromUnicodeToUtf8( iBuf8 , iBuf16 );

6.将char串转换成symbian串

char* cc = "aaaa";
TPtrC8 a;
a.Set( (const TUint8*)cc , strlen(cc) );

再加一点:

TDesC8 & buf ;
TUint8 * pdata ;
pdata = buf.Ptr() ;
然后,这个pdata就可以当成unsigned char *用了,这在网络通讯的时候很重要。
如果,怕pdata破坏的话,可以
TBuf8<1024> tmp_buf ;
tmp_buf.Copy(buf) ;
pdata = tmp_buf.Ptr() ;
这样就可以保护一下buf的数据了,尤其是如果这个buf是Socket的接收的数据是接收函数自己分配的时候。



strcpy

原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

memcpy

原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。

memset

原型:extern void *memset(void *buffer, int c, int count);
用法:#include <string.h>
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。

1. TTime转TBuf型TBuf<32> theTime;//存储转换后的时间
TTime tt; tt.HomeTime();
_LIT(KTimeFormat,"%Y%M%D%1-%2-%3 %H:%T:%S");//格式为:2006-03-04 12:12:12
tt.FormatL(theTime,KTimeFormat);

2. TDateTime转TBuf型TTime currentTime;//声明一个TTime类型

currentTime.HomeTime();//设置TTime为当前时间TDateTime
tdt=currentTime.DateTime();//TTime ---> TDateTime
TBuf<32> tmp;//存储转换完的Buf
tmp.AppendNum(tdt.Year());//用AppendNum()方法将一个Tint加入到TBuf中。

分享到:
评论

相关推荐

    Symbian C++ 各种类型之间的转换.pdf

    本文将详细介绍Symbian C++ 中几个常见类型的转换方法,包括`TTime`与`TBuf`、`TDateTime`与`TBuf`、`TBuf`与`TInt`以及`TInt`与`TBuf`之间的相互转换。 #### 1. `TTime` 转 `TBuf` 在Symbian C++ 中,如果需要将`...

    Symbian C++手机编程中字符串处理

    在Symbian C++手机编程中,字符串处理与标准C/C++有所不同,主要是因为Symbian OS使用了一种称为描述符(Descriptors)的机制来安全高效地管理字符串和二进制数据。描述符是一种内建的数据结构,它可以是常量或可变...

    Basics of Symbian C++

    ### Symbian C++基础知识与GUI应用程序开发指南 #### 概述 本文档旨在逐步介绍如何为Symbian操作系统开发图形用户界面(GUI)应用程序。本文档假设使用Carbide C++集成开发环境(IDE)以及Symbian SDK版本3.x或更...

    Sockets(Symbian C++基础)-Devdiv翻译

    ### Symbian C++ Socket框架详解 #### 一、引言与背景 Symbian操作系统在智能手机领域曾占据主导地位,特别是在20世纪末至21世纪初,它以其先进的功能和开放性受到广泛欢迎。Symbian OS的S60平台更是集成了丰富的...

    Symbian c++游戏的可用性指南

    ### Symbian C++游戏的可用性指南 #### 1. 概述 本文档旨在为开发者提供关于如何在Symbian操作系统上开发Series 60设备中的C++游戏的指南,强调了用户体验的重要性,并提供了具体的指导原则。文档中提到了通过对三...

    Symbian OS Coding Conventions in C++ Version 1.0.pdf

    数据类型和用法章节则专注于C++中数据类型的正确选择和使用,包括常量的定义、变量的作用域和生命周期、类型定义以及类型转换的规则,这些都是编写高效且无错误代码的基础。 ### 总结 《Symbian OS编码规范在C++》...

    symbian s60各种格式图片转码的例子

    在Symbian S60平台上,处理图像文件是一项常见的任务,特别是当涉及到不同格式之间的转换时。Symbian操作系统以其开放性和对多种设备的支持而闻名,S60是其一个流行的应用平台,广泛应用于诺基亚等品牌的智能手机。...

    symbian_source.rar_Symbian_C++_

    源码将揭示如何管理视图之间的转换,以及如何在不同视图间传递数据,这对于开发复杂应用具有很高的参考价值。 综上所述,这个"Symbian_source.rar"压缩包是一份全面的Symbian C++学习资料,涵盖了从基础到高级的...

    ffmpeg移植到symbian的全部源代码

    FFmpeg是一款开源的多媒体处理工具,它包含了音频和视频的编码、解码、转换、流媒体等功能,广泛应用于各种平台。在Symbian操作系统上移植FFmpeg是一项技术性很强的工作,因为Symbian是一个专为移动设备设计的古老且...

    MMS.rar_MMS_mms symbian_symbian_symbian MMs

    在Symbian C++中,这需要使用一系列的API和库,如WAP Stack(负责WAP协议的实现)和MMSToWapTransmitter(处理MMS到WAP的转换)。 在提供的压缩包中,"**www.pudn.com.txt**"可能是一个链接或者说明文件,通常这种...

    长话短说 Symbian开发入门

    这篇文档旨在为Symbian开发提供入门指导,由于Symbian基于C++,因此难度并不比常规的C++编程更高。 Symbian的入门步骤包括选择一款手机进行研究,例如诺基亚60系列的7650或3650。这些手机运行的是Symbian OS 6.1的...

    symbian png jpg gif转换

    文件`ImageHelper.cpp`和`ImageHelper.h`很可能包含了实现这些转换功能的C++源代码和头文件。 PNG(Portable Network Graphics)是一种无损压缩的图像格式,支持透明度,常用于网页设计和软件图标。JPG(Joint ...

    诺基亚symbian 手册汇编

    - **TInt**: 是一个32位的有符号整数类型,类似于C++中的`signed int`,在Symbian API中广泛使用。 - **TUint**: 是无符号整数类型,常用于计数器和标志,其有对应的不同位宽版本,如TUint64、TUint32等。 - **...

    test.rar_Symbian_C++_

    在Symbian操作系统上开发C++应用程序时,处理GIF图像和动画是一项常见的任务。"test.rar"这个压缩包很可能是包含了一个Symbian C++项目,该项目专注于解析和播放GIF文件。以下是对该主题的详细解释: 1. **Symbian...

    基于Symbian OS的手机开发与应用 part1

    作者简介本书目录第1章 Symbian中的C/C++语法1.1 C/C++概述1.1.1 C语言1.1.2 C++语言1.1.3 C/C++注释语句1.2 基本数据类型1.2.1 整型1.2.2 浮点型1.2.3 标识符1.2.4 常量和变量定义1.2.5 类型转换1.2.6 Symbian中的...

    基于Symbian OS的手机开发与应用 part3

    作者简介本书目录第1章 Symbian中的C/C++语法1.1 C/C++概述1.1.1 C语言1.1.2 C++语言1.1.3 C/C++注释语句1.2 基本数据类型1.2.1 整型1.2.2 浮点型1.2.3 标识符1.2.4 常量和变量定义1.2.5 类型转换1.2.6 Symbian中的...

    基于Symbian OS的手机开发与应用 part2

    作者简介本书目录第1章 Symbian中的C/C++语法1.1 C/C++概述1.1.1 C语言1.1.2 C++语言1.1.3 C/C++注释语句1.2 基本数据类型1.2.1 整型1.2.2 浮点型1.2.3 标识符1.2.4 常量和变量定义1.2.5 类型转换1.2.6 Symbian中的...

    Graphics_3rd.zip_Symbian_C++_

    在Symbian操作系统中,C++是主要的开发语言,用于创建各种应用程序,包括图形密集型的项目。"Graphics_3rd.zip" 提供了一个示例,它展示了两种在屏幕上绘制位图的方法。位图是一种图像格式,通常由像素数组组成,...

    Example_Bitmap.rar_symbian

    解析BMP文件时,通常需要读取文件头以获取这些信息,然后读取像素数据并将其转换为Symbian系统可以理解的格式。 在Symbian C++中,我们可以使用CFbsBitmap类来表示位图对象。这个类提供了创建、加载和操作位图的...

    Symbian OS课件(6)

    虽然Symbian OS使用了不同的异常处理方式,但为了与C++的异常处理兼容,Symbian提供了一些工具,如`__THROW`宏,可以将错误码转换为C++异常。这使得开发者可以在Symbian平台上利用C++的异常处理机制。 5. 异常安全...

Global site tag (gtag.js) - Google Analytics