2011-07-18 67 views
1

如果我有這樣的abc.txt的我想是.txt文件 的十六進制值就像我們看到,當我們打開記事本+可以點擊十六進制一些文本文件。 ..something like this要讀取.txt文件的十六進制值在C#

74 68 65 72 77 69 73 65 20 69 73 20 69 74 63 68  
therwise is itch 

69 6e 27 20 66 6f 72 20 61 20 66 69 67 68 74 2e  
in' for a fight. 

現在我想要這些十六進制值的單個字母。

我知道如何使用FileStream()StreamReader()閱讀的文本。

但現在想這些十六進制值我怎樣才能得到呢?

回答

3
BinaryReader reader = new BinaryReader(new FileStream("C:\\file.ext", FileMode.Open, FileAccess.Read, FileShare.None)); 
reader.BaseStream.Position = 0x0;  // The offset you are reading the data from 
byte[] data = reader.ReadBytes(0x10); // Read 16 bytes into an array 
reader.Close(); 

因此,假如輸入的是therwise is itch

string data_as_str = Encoding.Default.GetString(data); // Output: therwise is itch 
string data_as_hex = BitConverter.ToString(data);  // Output: 74-68-65-72-77-69-73-65-20-69-73-20-69-74-63-68 
+0

嘿thanx的幫助 – doesdos

+0

@doesdos沒有問題。 –

4

使用FileStream打開,然後使用Read獲取byte的數組。對於數組中的每個元素,使用byteVal.ToString("x2")轉換爲十六進制對(如果希望使用大寫十六進制,則使用X2)。