zoukankan      html  css  js  c++  java
  • 关于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
     
    Reply With Quote Multi-Quote This Message Quick reply to this message
  • 相关阅读:
    浅尝《Windows核心编程》之 等待函数
    linux 下 解压rar的过程
    一些多线程编程的例子(转)
    js数组操作《转》
    缩略图片处理<收藏>
    .net 框架
    详解NeatUpload上传控件的使用
    NHibernate工具
    xml xpath语法《转》
    C#事务技术
  • 原文地址:https://www.cnblogs.com/zziss/p/1652584.html
Copyright © 2011-2022 走看看