Symbian C++ 各种类型之间的转换
来源:互联网 发布:允许apache 权限文件 编辑:程序博客网 时间:2024/03/29 03:37
1.TTime转TBuf型
TBuf<32>theTime;//存储转换后的时间
TTime tt;
tt.HomeTime();
_LIT(KTimeFormat,"%Y%M%D%1-%2-%3 %H:%T:%S");//格式为:2006-03-0412:12:12
tt.FormatL(theTime,KTimeFormat);//FormatL()会以KTimeFormat字符串的形式来格式化时间在赋值给theTime
2. TDateTime转TBuf型
TTime currentTime;//声明一个TTime类型
currentTime.HomeTime();//设置TTime为当前时间
TDateTimetdt=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/0505: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
TIntaSecond;
TLexiLexS(bufSecond);
iLexS.Val(aSecond);
TInt 转换为 TBuf
TBuf<32>tbuf;
TInti=200;
tbuf.Num(i);
memset主要应用是初始化某个内存空间。用来对一段内存空间全部设置为某个字符。
memcpy是用于COPY源空间的数据到目的空间中,用来做内存拷贝可以拿它拷贝任何数据类型的对象。
strcpy只能拷贝字符串了,它遇到'/0'就结束拷贝。
以下是S60的数据类型转换(巨有用)
1.串转换成数字
TBuf16<20> buf(_L( "123" ) );
TLexlex( buf );
TIntiNum;
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";
TPtrC8a;
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 intcount);
用法:#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-0412: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中。
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/0505: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
TIntaSecond;
TLexiLexS(bufSecond);
iLexS.Val(aSecond);
TInt 转换为 TBuf
TBuf<32>tbuf;
TInti=200;
tbuf.Num(i);
memset主要应用是初始化某个内存空间。用来对一段内存空间全部设置为某个字符。
memcpy是用于COPY源空间的数据到目的空间中,用来做内存拷贝可以拿它拷贝任何数据类型的对象。
strcpy只能拷贝字符串了,它遇到'/0'就结束拷贝。
以下是S60的数据类型转换(巨有用)
1.串转换成数字
TBuf16<20> buf(_L( "123" ) );
TLexlex( buf );
TIntiNum;
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";
TPtrC8a;
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 intcount);
用法:#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-0412: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++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换!!
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Symbian C++ 各种类型之间的转换
- Flash与JSP通信 (2)
- Linux root用户远程登录
- 数据库文档生成工具
- Linux 日志管理
- 有关AS3编程的一些总结
- Symbian C++ 各种类型之间的转换
- AS3中Loader与URLLoader的比较
- IT精英,必须掌握的命令行
- 网页常用特殊符号
- sqlserver 备份恢复 学习笔记
- 利用U盘进行软件加密的方法
- java多线程例子
- 编写SQL Server Management Studio插件2
- 有关VA_LIST的用法