【发布时间】:2014-11-27 15:45:06
【问题描述】:
我正在尝试找到一种方法来解码 base64 字符串,然后使用 Delphi 7(这个特定的 Delphi 版本)将其保存到文件中。
base64 字符串本身是一个 PDF 文件,编码为 base64 作为 HL7 消息的一部分。我发现的几乎所有示例都与 Delphi 7 不兼容。
有人可以帮忙吗?
更新:
根据 Remy Lebeau 的建议,使用 TidDecoderMIME。 这是解码并保存到二进制文件的正确方法吗?
var
MStream:TMemoryStream;
Decoder:TIdDecoderMIME;
Base64: string;
begin
Decoder := TIdDecoderMIME.Create(nil);
MStream := TMemoryStream.Create;
Base64 := 'abcd1234';
Decoder.DecodeToStream(Base64,MStream);
MStream.SaveToFile('example.pdf');
FreeAndNil(Decoder);
FreeAndNil(MStream);
end;
【问题讨论】:
-
到目前为止你到底尝试了什么?
-
EncdDecd 单元具有直接解码为流的功能。解码流。发送带有编码 base64 的字符串流和文件流。
-
自己测试一下看看是不是正确的方法!也许使用一些 try..finally 块。
-
我对网络解码器motobit.com/util/base64-decoder-encoder.asp进行了测试,结果不同。网络解码器产生了正确的输出文件。虽然上面的 Delphi 代码产生了错误的输出文件,但文件大小更大。 MemoryStream 的保存方式是否不同?
-
我的错,我在日常工作中犯了一个错误。实际上,上面的代码有效!在德尔福 7 上:)
标签: delphi base64 delphi-7 decode