2013-06-29 32 views
0

我正在嘗試創建一個小程序,將十六進制轉換爲文本文件,以便我可以讀取它的內容。我的意思是我有一個.dat文件,但我想知道它在這些字段中的含義。那麼我想有它的每個值保存到線,看起來像這樣Visual c#十六進制代碼到文本文件

INSERT INTO `database` VALUES ('813000', '12ÐÇXOÀñ°ü', '0', '0', '0', '0', '0', '0', '0', '0', '28', '0', '0', '3900340', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '00', '00', '00', '0000', '0000', '0', '0', '138'); 

這是十六進制代碼

98B10100476C69747465727942656C740000000014001900000000000000000000000000E505000000000000000000005400000000000000000088138813000000000000000035000000000000000000000000000000000052696768747E636C69636B7E746F7E65717569707E6F6E7E77616973742E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我知道這是什麼意思,因爲我經歷過並且手工完成,但這是一個很長的路要做。在上面的表格六角tranlates我需要它

INSERT INTO `cq_itemtype` VALUES ('111000', 'GlitteryBelt', '20', '0', '25', '0', '0', '0', '0', '0', '0', '0', '1509', '0', '0', '0', '84', '0', '0', '0', '0', '5000', '5000', '0', '0', '0', '0', '0', '0', '0', '53', '00', '00', '00', '0000', '0000', '0', '0', '0'); 

我是新來的C#和仍然在學習。我有成千上萬的十六進制代碼像我需要翻譯......所以即使是一個簡單的代碼,將給我什麼每個部分的十六進制意味着讚賞。

+0

可能重複[你怎麼轉換字節數組十六進制字符串,反之亦然?](HTTP:/ /stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa) – Chris

回答

0

你可以試試這個方法:

public string ConvertHexToString(string hexInput, System.Text.Encoding encoding) 
{ 
    int numberChars = hexInput.Length; 
    byte[] bytes = new byte[numberChars/2]; 
    for (int i = 0; i < numberChars; i += 2) 
    { 
     bytes[i/2] = Convert.ToByte(hexInput.Substring(i, 2), 16); 
    } 
    return encoding.GetString(bytes); 
} 

而且使用這樣的:

string hex = "Your hex"; 
string result = ConvertHexToString(hex, System.Text.Encoding.Unicode); 
+0

我會考慮它 –

+0

請嘗試我的編輯。 – jomsk1e