主题:如何读一个二进制文件到字符串
ztkx
[专家分:0] 发布于 2008-10-24 18:43:00
新接触delphi,需要从证书文件中读出内容然后进行base64编码,但是delphi的字符串实在是让人头疼,方法很多,但是又似乎都没用,在网上找些教程也摸不着头脑
传出来的不是string,而是array of byte,又无法转换,请教各位大大,多谢了
回复列表 (共2个回复)
沙发
defly [专家分:30] 发布于 2008-10-28 15:32:00
我觉得你可以安装一个delphi2009,解决你的问题应该是小KISS了..哈哈,自己到网上去下载吧..... 除此之外,里面还有很多新鲜的东东,在等着你呢.......
板凳
ywmjs [专家分:740] 发布于 2008-11-10 14:36:00
读出来的数据应该是流,你建立一个TStringStream变量,将读出的流转换一下,下面的是Base64解码函数:
function DecodeBase64(Source:string):string;
var
SrcLen,Times,i:integer;
x1,x2,x3,x4,xt:byte;
begin
result:='';
SrcLen:=Length(Source);
Times:=SrcLen div 4;
for i:=0 to Times-1 do
begin
x1:=FindInTable(Source[1+i*4]);
x2:=FindInTable(Source[2+i*4]);
x3:=FindInTable(Source[3+i*4]);
x4:=FindInTable(Source[4+i*4]);
x1:=x1 shl 2;
xt:=x2 shr 4;
x1:=x1 or xt;
x2:=x2 shl 4;
result:=result+chr(x1);
if x3= 64 then break;
xt:=x3 shr 2;
x2:=x2 or xt;
x3:=x3 shl 6;
result:=result+chr(x2);
if x4=64 then break;
x3:=x3 or x4;
result:=result+chr(x3);
end;
end;
我来回复