2014-03-06 58 views
1

無法刪除新行字符的base64編碼字符串,刪除新行字符的base64編碼字符串

由於CRYPT_STRING_NOCRLF使用,但它不是在Windows Server 2003和Windows XP中,如何支持獲得在Windows XP和2003所期望的結果,而無需使用CRYPT_STRING_NOCRLF

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

回答

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; 

ie。用空字符串替換CR/LF對以將其從輸出字符串中刪除?