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;
    

      

     

  • 相关阅读:
    正则表达式分组()、不捕获(?:)和断言(?<=)详解
    正则匹配IP
    正则匹配中文
    SPL--Serializable
    JavaScript中原型和原型链
    JavaScript中变量和函数声明的提升
    运行gulp提示:Task function must be specified
    vue-router 去掉#
    学以致用 ---- vue子组件→父组件通信
    删除node_modules
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/11904909.html
Copyright © 2011-2022 走看看