有人可以向我提供一个如何使用库EncodeBase64
中的DecodeBase64
和Soap.EncdDecd
的示例吗?我正在使用Delphi xe2
答案 0 :(得分:6)
您没有指定尝试编码或解码的数据类型。 DecodeBase64
和EncodeBase64
函数在内部使用EncodeStream
和DecodeStream
,理论上您可以使用基于流的这些函数对任何类型或数据进行编码或解码(使用后)用于保存数据的流。)
对于编码/解码字符串,只需直接使用EncodeString
和DecodeString
函数。
function EncodeString(const Input: string): string;
function DecodeString(const Input: string): string;
对于流使用EncodeStream
和DecodeStream
procedure EncodeStream(Input, Output: TStream);
procedure DecodeStream(Input, Output: TStream);
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(字节数组)。