zoukankan      html  css  js  c++  java
  • 对象持久化

     

    网上查了下,貌似WriteComponentResFile,ReadComponentResFile可以,但是必须是一个TComponet的对象,我要串行化一个OleVariant的对象,大大们,怎么做?

    要持久对象,必须继承TPersistent....

    function   ComponentToStr(AComponent:   TComponent):   string;   
      var   
          BinStream:   TMemoryStream;   
          StrStream:   TStringStream;   
          s:   string;   
      begin   
          BinStream   :=   TMemoryStream.Create;   
          try   
              StrStream   :=   TStringStream.Create(s);   
              try   
                  BinStream.WriteComponent(AComponent);   
                  BinStream.Seek(0,   soFromBeginning);   
                  ObjectBinaryToText(BinStream,   StrStream);   
                  StrStream.Seek(0,   soFromBeginning);   
                  Result   :=   StrStream.DataString;   
              finally   
                  StrStream.Free;   
              end;   
          finally   
              BinStream.Free   
          end;   
      end;   
        
      function   StrToComponent(const   Value:   string;   
          Instance:   TComponent):   TComponent;   
      var   
          StrStream:   TStringStream;   
          BinStream:   TMemoryStream;   
      begin   
          StrStream   :=   TStringStream.Create(Value);   
          try   
              BinStream   :=   TMemoryStream.Create;   
              try   
                  ObjectTextToBinary(StrStream,   BinStream);   
                  BinStream.Seek(0,   soFromBeginning);   
                  Result   :=   BinStream.ReadComponent(Instance);   
              finally   
                  BinStream.Free;   
              end;   
          finally   
              StrStream.Free;   
          end;   
      end;

     

    使用之前注册以下:   
          RegisterClasses

  • 相关阅读:
    Php排序
    php导出excel表
    yii的多表查询
    MySQL中自定义排序
    jquery中的obj.attr()和obj.data
    PhpStorm快捷键
    记2019年目标之一没有996的大数据分析BI实战历程
    2018年传统公司技术部门技术变迁和2019展望
    mpvue微信小程序开发随笔
    docker toolbox的redis 配置主从及哨兵模式保证高可用
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035704.html
Copyright © 2011-2022 走看看