Delphi xe2编码/解码基础64

时间:2013-06-14 13:07:45

标签: delphi delphi-xe2 decode encode base

有人可以向我提供一个如何使用库EncodeBase64中的DecodeBase64Soap.EncdDecd的示例吗?我正在使用Delphi xe2

1 个答案:

答案 0 :(得分:6)

您没有指定尝试编码或解码的数据类型。 DecodeBase64EncodeBase64函数在内部使用EncodeStreamDecodeStream,理论上您可以使用基于流的这些函数对任何类型或数据进行编码或解码(使用后)用于保存数据的流。)

对于编码/解码字符串,只需直接使用EncodeStringDecodeString函数。

function  EncodeString(const Input: string): string;
function  DecodeString(const Input: string): string;

对于流使用EncodeStreamDecodeStream

procedure EncodeStream(Input, Output: TStream);
procedure DecodeStream(Input, Output: TStream);

EncodeBase64的样本

function  DecodeBase64(const Input: AnsiString): TBytes;
function  EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;

例如,要编码文件并使用EncodeBase64函数返回一个字符串,您可以尝试这一点(显然您也可以直接使用EncodeStream函数)。

function EncodeFile(const FileName: string): AnsiString;
var
  LStream: TMemoryStream;
begin
  LStream := TMemoryStream.Create;
  try
    LStream.LoadFromFile(Filename);
    Result := EncodeBase64(LStream.Memory, LStream.Size);
  finally
    LStream.Free;
  end;
end;

现在使用DecodeBase64函数只传递一个已编码的字符串,该函数将返回一个TBytes(字节数组)。