как показать шестнадцатеричный код char? - PullRequest
2 голосов
/ 16 ноября 2009

У меня есть файл, содержащий номера, такие как FB8E, FB8F, FB90 в каждой строке.

Я хочу в своей программе загрузить этот файл, взять каждую строку и напечатать символ, соответствующий этому номеру / строке.

Например, моя первая строка - FB8E, я хочу что-то преобразовать, например # $ FB8E (арабский Каф), как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 16 ноября 2009

Если вы находитесь в D2009 / 2010:

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

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

в противном случае замените Char на WideChar.

Конечно, код можно немного сжать, но я оставил это для ясности.

РЕДАКТИРОВАТЬ: Для тех из вас, кто не боится приведения типов, есть также функция HexToBin в classes.pas.

0 голосов
/ 16 ноября 2009

Вы не будете слишком довольны простым преобразованием строки в #$FB8E, поскольку компилятор, скорее всего, разберется с вами.

Таким образом, общий подход здесь состоит в том, чтобы прочитать строку, проанализировать шестнадцатеричное значение и создать WideChar из этого значения. Но в последние годы я мало делал с Delphi, поэтому боюсь, что не могу точно сказать, как это сделать.

...