删除新的行字符到编码的base64字符串

时间:2014-03-06 15:30:17

标签: delphi freepascal lazarus

无法将新行字符移除到已编码的base64字符串

使用 CRYPT_STRING_NOCRLF 但在Windows Server 2003和Windows XP中不支持,如何在不使用 CRYPT_STRING_NOCRLF 的情况下在Windows xp和2003中获得所需的结果

Procedure TForm1.Button1Click(Sender: TObject);
var
  sLen : Cardinal;
  temp : String;
  a : Array[0..1] of Byte = ($00,$00);
Begin
  CryptBinaryToStringA(@a[0],Length(a),CRYPT_STRING_BASE64 Or CRYPT_STRING_NOCRLF,nil,@sLen);
  SetLength(temp,sLen);
  CryptBinaryToStringA(@a[0],Length(a),CRYPT_STRING_BASE64 Or CRYPT_STRING_NOCRLF ,@temp[1],@sLen);
  ShowMessage(temp);
end; 

CryptBinaryToString

1 个答案:

答案 0 :(得分:0)

不仅仅是这样做:

uses StrUtils;

Procedure TForm1.Button1Click(Sender: TObject);
var
  sLen : Cardinal;
  temp : String;
  a : Array[0..1] of Byte = ($00,$00);
Begin
  CryptBinaryToStringA(@a[0],Length(a),CRYPT_STRING_BASE64 Or CRYPT_STRING_NOCRLF,nil,@sLen);
  SetLength(temp,sLen);
  CryptBinaryToStringA(@a[0],Length(a),CRYPT_STRING_BASE64 Or CRYPT_STRING_NOCRLF ,@temp[1],@sLen);
  temp:=StrReplace(temp,#13#10,'');
  ShowMessage(temp);
end;

即。用空字符串替换CR / LF对以将其从输出字符串中删除?