«« Site Rescued »»

While the site is still going to move from its current host, a new site will now take its place. More Info.

The new site may have less content, but the core will now remain. And it will now play nicely with phones! Keep an eye on the DelphiDabbler Blog for news.

» Help

A general purpose Base64 decoding routine using Indy

   

I cobbled together this little routine to use the Indy Component (v10) to decode some base-64 encoded information. I chose the TBytes return type because base-64 encoding can be used for any sequence of "octets". I thought it better to not return a string since that implies text was encoded. We can easily return a string from the byte array.

As well as TBytes I'm using the relatively new TBytesStream stream class, so you will need to make some changes if using older Delphis.

function Base64Decode(const EncodedText: string): TBytes;
var
  DecodedStm: TBytesStream;
  Decoder: TIdDecoderMIME;
begin
  Decoder := TIdDecoderMIME.Create(nil);
  try
    DecodedStm := TBytesStream.Create;
    try
      Decoder.DecodeBegin(DecodedStm);
      Decoder.Decode(EncodedText);
      Decoder.DecodeEnd;
      Result := DecodedStm.Bytes;
    finally
      DecodedStm.Free;
    end;
  finally
    Decoder.Free;
  end;
end;
Author: Peter Johnson
Contributor: Jeff DeVore
Added: 2010-03-12
Last updated: 2010-03-12

« Return to contents »