[英]convert hex formatted data into string
我有一些需要以十六進制格式(以字節存儲)的數據,我需要將其轉換為字符串,數據應像這樣
13 61 23 45 67 8F FF
和預期的輸出
13612345678FFF
我知道Chr()或IntToStr()函數將不起作用,因為此數據不是實際的十六進制代碼,而是以十六進制格式設置的字符串/數字,因此有人對此有何建議?
這是用於將字節的動態數組轉換為十六進制字符串:
function BytesToHex(aSource: TBytes): string;
begin
SetLength(Result, Length(aSource) * 2);
if Length(aSource) > 0 then
BinToHex(aSource[0], PChar(Result), Length(aSource));
end;
如果您的源字節不在動態數組中,則必須稍微調整代碼,但是它應該使您大致了解如何執行此操作。
對於您提供的示例,為什么不刪除空格呢?
s := '13 61 23 45 67 8F FF';
stripped := StrUtils.ReplaceStr(s,' ','');
如果您的十六進制字符串不太長,則可以將其作為一個數字獲取,如下所示:
MyInt64 := StrToInt64('$' + stripped);
如果您想獲取十六進制字符串作為字節數組,請查看HexToBin()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.