2009-11-16 51 views
2

我有一個文件包含每個行上的FB8E,FB8F,FB90等數字。如何顯示十六進制代碼字符?

我想在我的程序中加載這個文件,並採取每一行並打印對應於該號碼/行對應的字符。

爲expamle,我最冷的線是FB8E,我想要轉換它像#$ FB8E(阿拉伯卡夫),我該怎麼做?

回答

5

如果你在D2009/2010:

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

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

否則與WideChar替換字符。

當然,代碼可以壓縮一點點,但爲了清晰起見,我將其省略了。

編輯:對於那些你不怕類型鑄造也有HexToBin函數classes.pas。

+0

謝謝,這是我需要的。 – avar 2009-11-16 07:44:47

0

只要將該行轉換爲#$FB8E,您不會太滿意,因爲編譯器很可能會爲您排序。

所以這裏的一般方法是讀取行,解析十六進制值並從該值創建WideChar。但是近年來我並沒有做太多的德爾菲,所以恐怕我不能告訴你如何做到這一點。

相關問題