回 帖 发 新 帖 刷新版面

主题:如何读一个二进制文件到字符串

新接触delphi,需要从证书文件中读出内容然后进行base64编码,但是delphi的字符串实在是让人头疼,方法很多,但是又似乎都没用,在网上找些教程也摸不着头脑

传出来的不是string,而是array of byte,又无法转换,请教各位大大,多谢了

回复列表 (共2个回复)

沙发


我觉得你可以安装一个delphi2009,解决你的问题应该是小KISS了..哈哈,自己到网上去下载吧..... 除此之外,里面还有很多新鲜的东东,在等着你呢.......

板凳

读出来的数据应该是流,你建立一个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;

我来回复

您尚未登录,请登录后再回复。点此登录或注册