zoukankan      html  css  js  c++  java
  • INDY10 BASE64编码

    INDY10 BASE64编码

    DELPHI自带的BASE64单元,在项目中使用发现非常没有效率,INDY10的好用。

    uses IdCoderMIME

    BASE64编码类:TIdEncoderMIME

    BASE64编码接口

    type
      TIdEncoder = class(TIdBaseComponent)
      public
        function Encode(const AIn: string; AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ): string; overload;
        procedure Encode(const AIn: string; ADestStrings: TStrings; AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ); overload;
        procedure Encode(const AIn: string; ADestStream: TStream; AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ); overload;
    
        function Encode(ASrcStream: TStream; const ABytes: Integer = -1): string; overload;
        procedure Encode(ASrcStream: TStream; ADestStrings: TStrings; const ABytes: Integer = -1); overload;
        procedure Encode(ASrcStream: TStream; ADestStream: TStream; const ABytes: Integer = -1); overload; virtual; abstract;
    
        class function EncodeString(const AIn: string; AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ): string; overload;
        class procedure EncodeString(const AIn: string; ADestStrings: TStrings;
          AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ); overload;
        class procedure EncodeString(const AIn: string; ADestStream: TStream;
          AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ASrcEncoding: IIdTextEncoding = nil{$ENDIF}
          ); overload;
    
        class function EncodeBytes(const ABytes: TIdBytes): string; overload;
        class procedure EncodeBytes(const ABytes: TIdBytes; ADestStrings: TStrings); overload;
        class procedure EncodeBytes(const ABytes: TIdBytes; ADestStream: TStream); overload;
    
        class function EncodeStream(ASrcStream: TStream; const ABytes: Integer = -1): string; overload;
        class procedure EncodeStream(ASrcStream: TStream; ADestStrings: TStrings; const ABytes: Integer = -1); overload;
        class procedure EncodeStream(ASrcStream: TStream; ADestStream: TStream; const ABytes: Integer = -1); overload;
      end;
    

     BASE64解码类:TIdDecoderMIME

    解码接口

      TIdDecoder = class(TIdBaseComponent)
      protected
        FStream: TStream;
      public
        procedure DecodeBegin(ADestStream: TStream); virtual;
        procedure DecodeEnd; virtual;
    
        procedure Decode(const AIn: string); overload;
        procedure Decode(ASrcStream: TStream; const ABytes: Integer = -1); overload; virtual; abstract;
    
        class function DecodeString(const AIn: string; AByteEncoding: IIdTextEncoding = nil
          {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
          ): string;
        class function DecodeBytes(const AIn: string): TIdBytes;
        class procedure DecodeStream(const AIn: string; ADestStream: TStream);
      end;
    

      

     

  • 相关阅读:
    树上倍增求LCA(最近公共祖先)
    NOI题库分治算法刷题记录
    NOI题库刷题日志 (贪心篇题解)
    O(nlogn)LIS及LCS算法
    BLOG搬家
    『素数 Prime判定和线性欧拉筛法 The sieve of Euler』
    『扩展欧几里得算法 Extended Euclid』
    『NOIP2018普及组题解』
    P25、面试题1:赋值运算符函数
    字符串转成整数
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/11904909.html
Copyright © 2011-2022 走看看