【发布时间】:2009-11-16 05:56:15
【问题描述】:
我有一个文件,每行包含 FB8E、FB8F、FB90 等数字。
我想在我的程序中加载这个文件并获取每一行并打印对应于该数字/行的字符。
例如,我的第一行是 FB8E,我想要像 #$FB8E (arabic Kaf) 这样的东西来转换它,我该怎么做?
【问题讨论】:
标签: delphi character-encoding hex
我有一个文件,每行包含 FB8E、FB8F、FB90 等数字。
我想在我的程序中加载这个文件并获取每一行并打印对应于该数字/行的字符。
例如,我的第一行是 FB8E,我想要像 #$FB8E (arabic Kaf) 这样的东西来转换它,我该怎么做?
【问题讨论】:
标签: delphi character-encoding hex
如果你在 D2009/2010:
var
F: TextFile;
Line: string;
Code: Integer;
Ch: Char;
...
Readln(F, Line);
Code := StrToInt('$' + Line);
Ch := Char(Code);
...
否则将 Char 替换为 WideChar。
当然,代码可以压缩一点,但为了清楚起见,我把它省略了。
编辑:对于那些不怕类型转换的人,classes.pas 中还有 HexToBin 函数。
【讨论】:
您不会对简单地将行转换为 #$FB8E 感到满意,因为编译器很可能会为您整理这些内容。
所以这里的一般方法是读取该行,解析十六进制值并从该值创建一个 WideChar。但是这几年我没怎么做Delphi,所以恐怕我不能告诉你具体怎么做。
【讨论】: