function DecodeStringAscii85(const s:string; const ExpectBoundary: Boolean):string; // BASED ON base64.DecodeStringBase64();
var
Instream,
Outstream : TStringStream;
Decoder : TASCII85DecoderStream;
begin
// I think StringReplace() is not needed but I did it anyway...
Instream:=TStringStream.Create(StringReplace(StringReplace(s, #13, '', [rfReplaceAll]), #10, '', [rfReplaceAll]));
try
Outstream:=TStringStream.Create('');
try
Decoder:=TASCII85DecoderStream.Create(Instream);
try
Decoder.BExpectBoundary := ExpectBoundary;
Outstream.CopyFrom(Decoder,Decoder.Size);
Result:=Outstream.DataString;
finally
Decoder.Free;
end;
finally
Outstream.Free;
end;
finally
Instream.Free;
end;
end;