如何显示十六进制代码char?

时间:2009-11-16 05:56:16

标签: delphi character-encoding hex

我的文件包含每行上的FB8E,FB8F,FB90等数字。

我希望在我的程序中加载此文件并获取每一行并打印与该数字/行对应的字符。

对于expamle,我最坚定的一行是FB8E,我想把它转换成#$ FB8E(阿拉伯语Kaf),我该怎么做?

2 个答案:

答案 0 :(得分:5)

如果你在D2009 / 2010:

var
  F: TextFile;
  Line: string;
  Code: Integer;
  Ch: Char;

...
Readln(F, Line);
Code := StrToInt('$' + Line);
Ch := Char(Code);
...

否则用WideChar替换Char。

当然代码可以稍微压缩一下,但为了清楚起见,我把它留了下来。

编辑:对于那些不怕类型转换的人,在classes.pas中还有 HexToBin 函数。

答案 1 :(得分:0)

对于简单地将行转换为#$FB8E,您不会太满意,因为编译器很可能会为您排序这些行。

所以这里的一般方法是读取行,解析十六进制值并从该值创建一个WideChar。但近年来我没有做太多的德尔福,所以我恐怕无法告诉你如何做到这一点。