如何把这样的字符串'97 7A', 转换成真正的十六进制的97 7A

heikeyanxi 2009-12-18 10:22:55
'97 7A'是字符形式的,我想把这个字符形式的转换成真正的十六进制的数据,即,在内存中显示成97 7A,可以达到吗?
...全文
138 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
heikeyanxi 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 supertitan001 的回复:]
var
  s:string;
  c:char;

s:='7a';
c:=chr(inttostr('$'+s));
[/Quote]
谢了, 不过应该是StrToInt, 原来直接加个'$'就行了。
同时也谢谢gyk120的帮助
gyk120 2009-12-19
  • 打赏
  • 举报
回复
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;
gyk120 2009-12-19
  • 打赏
  • 举报
回复
http://download.csdn.net/source/1126508
也许这个有点用?
下午考六级,要闪人了……
SuperTitan001 2009-12-19
  • 打赏
  • 举报
回复
var
s:string;
c:char;

s:='7a';
c:=chr(inttostr('$'+s));
heikeyanxi 2009-12-19
  • 打赏
  • 举报
回复
回楼上: 现在的'97 7A'就是个字符串, 我想要把这个字符串转换成内存中的两个字节(内存中显示的7A等就是一个字节嘛,97 7A就是两个字节了)。其实我的最终目的是想用汉字的Unicode码替换内存中的汉字的Unicode码,因为想自定义汉字,所以需要先把汉字转换成Unicode码,然后动态的写入内存,现在的问题是汉字的Unicode码转换出来了,但是不知如何将这些码转换成真正的十六进制的数据,然后写入内存。
WriteProcessMemory我倒是会用,关键是不知道如何转换数据。
gyk120 2009-12-19
  • 打赏
  • 举报
回复
这个我有点不清楚,你的97 7A究竟是什么?ASCII码还是就是那个数据?
如果你要内存中写入的话,估计得WriteProcessMemory了
heikeyanxi 2009-12-18
  • 打赏
  • 举报
回复
谢谢楼上的答复,不过你可能误解了我的意思,你这个函数的作用是把字符串转化成了字符串的十六进制,比如你这段函数把字符串'97 7A'变成了'3937203741', 但是在内存中显示的并不是97 7A,我要的是把字符串比如'97 7A'转化成在内存中也是显示成97 7A
gyk120 2009-12-18
  • 打赏
  • 举报
回复
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;
hjkto 2009-12-18
  • 打赏
  • 举报
回复
up+mark
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2009-12-18 10:22
社区公告
暂无公告