delphi如何修改文件的16进制数,分不够可再加 ( 积分: 100 )

  • 主题发起人 主题发起人 pub66cn
  • 开始时间 开始时间
P

pub66cn

Unregistered / Unconfirmed
GUEST, unregistred user!
我想向一个文件,写入一组16进制数,
例如:16进制转换后的字符串为1A2B3C4E
我要把他转变为byte的值如:$1A $2B $3C $4E
再WriteBuffer(byte,1);写入文件中,,
该如何实现?怎样把字符串变为byte能接受的值,,($1A $2B $3C $4E)
 
大富翁现在,好像越来越少人了,100分都没人要
 
不就是string转换为byte吗?

var
S:String;
P:PChar;
B:array of Byte;
begin
S:='Hello';
SetLength(B,Length(S)+1);
P:=PChar(S);
CopyMemory(B,P,Length(S)+1);
ShowMessage(Char(B[0]));
end

至于那个什么$,自己添加
 
function ISquare(BaseValue,Number:Integer ) : Integer ;
var
i : Integer ;
begin
Result := 1 ;
for i := 0 to Number - 1 do
Result := Result * BaseValue ;
end;

function HexStrToInt(StrHex : string ) : Integer ;
const HexList : array[0..15]of Char =('0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F') ;
var
i ,j : Integer ;
begin
Result := 0 ;
for i:= Length(StrHex) downto 1 do
for j := Low(HexList) to High(HexList) do
if StrHex = HexList[j] then begin
Result := Result + j * ISquare(16 ,Length(StrHex) - i) ;
Break ;
end;
end;
 
var
aa: string;
Buf: PByteArray;
begin
aa:= '1111';
Buf:= @aa[1];
end;

然后直接writebuffer(buf, length(aa));
 
后退
顶部