INDY10 BASE64 encoding
DELPHI comes BASE64 unit used in the project found to be very inefficient, INDY10 easy to use.
uses IdCoderMIME
BASE64 coding classes: TIdEncoderMIME
BASE64 encoding Interface
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 decoding categories: TIdDecoderMIME
Decoding Interface
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;