关于ttime的序列化存储及读取的方法
生活随笔
收集整理的這篇文章主要介紹了
关于ttime的序列化存储及读取的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于ttime的序列化存儲及讀取的方法,找到答案了:
當程序的配置文件數據項比較多,類型比較多時通常使用二進制的形式來保存數據,RReadStream和RWriteStream提供了多種數值型和描述符類型的輸入輸出方法,但是其它基本類型就需要自己處理一下了,比如TTime,Symbian系統中使用一個64位整型來保存日期和時間,這樣當序列化TTimer對象是就可以取出這個64位數值進行保存了,可是接下來會發現RReadStream和RWriteStream根本沒有提供64位整型的輸入輸出方法,這時需要我們把64位整型拆分成兩個32位整型數然后進行保存,下面的代碼演示了如何序列化一個TTime對象,并展示了Series 2nd和3rd平臺上的不同處理方法:
void ExternalizeL(RWriteStream& aStream)
{
TTime time;
time.HomeTime();
//Decomposes TTime object into two TUint32 objects.
TUint32 low(0), high(0);
#if defined __SERIES60_3X__
low = I64LOW(time.Int64());
high = I64HIGH(time.Int64());
#else
low = time.Int64().Low();
high = time.Int64().High();
#endif
aStream.WriteUint32L( low );
aStream.WriteUint32L( high );
}
void InternalizeL(RReadStream& aStream)
{
//Two TUint32 objects combine to a TInt64 object for constructing a TTime object.
TUint32 low(0), high(0);
low = aStream.ReadUint32L();
high = aStream.ReadUint32L();
TInt64 timeVal( 0 );
#if defined __SERIES60_3X__
timeVal=MAKE_TINT64(high, low );
#else
timeVal = TInt64( high, low );
#endif
TTime time = timeVal;
}
http://wiki.forum.nokia.com/index.ph...AF%B9%E8%B1%A1 原文:http://www.forum.nokia.com/forum/showthread.php?t=139168
當程序的配置文件數據項比較多,類型比較多時通常使用二進制的形式來保存數據,RReadStream和RWriteStream提供了多種數值型和描述符類型的輸入輸出方法,但是其它基本類型就需要自己處理一下了,比如TTime,Symbian系統中使用一個64位整型來保存日期和時間,這樣當序列化TTimer對象是就可以取出這個64位數值進行保存了,可是接下來會發現RReadStream和RWriteStream根本沒有提供64位整型的輸入輸出方法,這時需要我們把64位整型拆分成兩個32位整型數然后進行保存,下面的代碼演示了如何序列化一個TTime對象,并展示了Series 2nd和3rd平臺上的不同處理方法:
void ExternalizeL(RWriteStream& aStream)
{
TTime time;
time.HomeTime();
//Decomposes TTime object into two TUint32 objects.
TUint32 low(0), high(0);
#if defined __SERIES60_3X__
low = I64LOW(time.Int64());
high = I64HIGH(time.Int64());
#else
low = time.Int64().Low();
high = time.Int64().High();
#endif
aStream.WriteUint32L( low );
aStream.WriteUint32L( high );
}
void InternalizeL(RReadStream& aStream)
{
//Two TUint32 objects combine to a TInt64 object for constructing a TTime object.
TUint32 low(0), high(0);
low = aStream.ReadUint32L();
high = aStream.ReadUint32L();
TInt64 timeVal( 0 );
#if defined __SERIES60_3X__
timeVal=MAKE_TINT64(high, low );
#else
timeVal = TInt64( high, low );
#endif
TTime time = timeVal;
}
http://wiki.forum.nokia.com/index.ph...AF%B9%E8%B1%A1 原文:http://www.forum.nokia.com/forum/showthread.php?t=139168
轉載于:https://www.cnblogs.com/zziss/archive/2010/01/20/1652584.html
總結
以上是生活随笔為你收集整理的关于ttime的序列化存储及读取的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SEO上下线营销思维:二者兼备实现“落地
- 下一篇: MIPS汇编语言学习笔记07:打印双精度