如何把这样的字符串'97 7A', 转换成真正的十六进制的97 7A '97 7A'是字符形式的,我想把这个字符形式的转换成真正的十六进制的数据,即,在内存中显示成97 7A,可以达到吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function StrToHex(mStr: string): string; var I: Integer; begin Result := ’’; for I := 1 to Length(mStr) do Result := Format(’%s%.2x’, [Result, Ord(mStr[I])]); end; 谢谢楼上的答复,不过你可能误解了我的意思,你这个函数的作用是把字符串转化成了字符串的十六进制,比如你这段函数把字符串'97 7A'变成了'3937203741', 但是在内存中显示的并不是97 7A,我要的是把字符串比如'97 7A'转化成在内存中也是显示成97 7A 这个我有点不清楚,你的97 7A究竟是什么?ASCII码还是就是那个数据?如果你要内存中写入的话,估计得WriteProcessMemory了 回楼上: 现在的'97 7A'就是个字符串, 我想要把这个字符串转换成内存中的两个字节(内存中显示的7A等就是一个字节嘛,97 7A就是两个字节了)。其实我的最终目的是想用汉字的Unicode码替换内存中的汉字的Unicode码,因为想自定义汉字,所以需要先把汉字转换成Unicode码,然后动态的写入内存,现在的问题是汉字的Unicode码转换出来了,但是不知如何将这些码转换成真正的十六进制的数据,然后写入内存。 WriteProcessMemory我倒是会用,关键是不知道如何转换数据。 var s:string; c:char;s:='7a';c:=chr(inttostr('$'+s)); http://download.csdn.net/source/1126508也许这个有点用?下午考六级,要闪人了…… Chinese=array[0..1] of char; function TForm1.ChineseToHex(const Value: chinese): string; begin Result:=inttohex(ord(Value[0]),2)+inttohex(ord(Value[1]),2); end; procedure TForm1.Button1Click(Sender: TObject); var s:Chinese; begin s:='你'; caption:=ChineseToHex(s); end; 谢了, 不过应该是StrToInt, 原来直接加个'$'就行了。同时也谢谢gyk120的帮助 关于Tstrings是问题 求字符转换函数 Indy 9.0.14中IdFTP组件的Bug???????????? 很菜的问题:如何制作和DBNavigator相同功能的按纽啊? 请各位大虾帮忙! 关于adoquery的参数 如何用C++ Builder调用DLL函数 技术问题中的非技术问题》》》》》 考研论!!! 源程序 DELPHI网络监控问题。 谁告诉我我的mdi子窗口是怎么回事啊??
var
I: Integer;
begin
Result := ’’;
for I := 1 to Length(mStr) do
Result := Format(’%s%.2x’, [Result, Ord(mStr[I])]);
end;
如果你要内存中写入的话,估计得WriteProcessMemory了
WriteProcessMemory我倒是会用,关键是不知道如何转换数据。
s:string;
c:char;s:='7a';
c:=chr(inttostr('$'+s));
也许这个有点用?
下午考六级,要闪人了……
function TForm1.ChineseToHex(const Value: chinese): string;
begin
Result:=inttohex(ord(Value[0]),2)+inttohex(ord(Value[1]),2);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s:Chinese;
begin
s:='你';
caption:=ChineseToHex(s);
end;
同时也谢谢gyk120的帮助