2

有人可以为我提供一个如何使用EncodeBase64DecodeBase64来自图书馆的例子Soap.EncdDecd吗?我在用着Delphi xe2

4

1 回答 1

7

您没有指定要编码或解码的数据类型。DecodeBase64andEncodeBase64函数在内部使用and EncodeStreamDecodeStream理论上您可以使用这些基于流的函数来编码或解码任何类型或数据(在使用流保存数据之后)。

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

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(字节数组)。

于 2013-06-14T22:07:35.480 回答