none
C#如何開啟十六進位檔? RRS feed

  • 問題

  • 請問各位先進,
    我是一個剛接觸C#的新手,有一個DOS系統建立的16進位檔(*.dat)
    己知檔案格式如下:
      -----------------------------------------------  ---------------- 
    0
     00 00 1C 44 B4 E4 CB 6D-A4 51 A4 54 B5 66 A6 61  
    10
     20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20          
    20
     20 20 20 20 06 00 00 00-00 54 00 00 33 01 0A 00   
    30 00 1E E6 B0 73 AC 4F BB-52 A6 F1 A7 41 AC 4F A9  
    40
     CA A9 52 20 20 20 20 20-20 20 20 20 20 20 20 20         
    50
     20 20 20 08 00 00 00 55-54 00 01 36 01 0A 00 00    
                                        
    欄位說明:                               
    00 - 03
    數字號碼 (16進位表示)                    
    04 - 23
    中文名稱 (最多16個中文字)                   
    24
        (一個中文字 2 bytes)               
    25 - 28
    流水編號
    29
       一個英文字
    2A
       未知 未使用 ??                       
    2B
       數字  
    2C
       數字 
    2D
       數字
    2E   此筆結束
    -----------------------------------------------------------------------------
    以上述的檔案格式,用C#要如何開啟檔案=>讀取欄位資料=>將各欄位轉換成文字檔
    新手上路,敬請各位先進不吝指導,謝謝!              

    2010年1月29日 下午 12:57

解答

  • 它是固定長度的吧. 先把它用Binary讀進byte陣列

    切完後用 Encoding 類別 來轉換
    主要是 Encoding. GetString 方法 (array< Byte> [] () [] , Int32, Int32)
    ASCII使用System.Text.Encoding.ASCII.GetString
    Big-5使用 System.Text.Encoding.GetEncoding(950).GetString
    另請參考  MSDN 文件庫
    [了解編碼 ]

    先看看上述連結的內容, 試著寫看看,
    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    • 已標示為解答 Lolota Lee 2010年2月5日 上午 05:39
    2010年1月29日 下午 01:51
    版主

所有回覆

  • 它是固定長度的吧. 先把它用Binary讀進byte陣列

    切完後用 Encoding 類別 來轉換
    主要是 Encoding. GetString 方法 (array< Byte> [] () [] , Int32, Int32)
    ASCII使用System.Text.Encoding.ASCII.GetString
    Big-5使用 System.Text.Encoding.GetEncoding(950).GetString
    另請參考  MSDN 文件庫
    [了解編碼 ]

    先看看上述連結的內容, 試著寫看看,
    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    • 已標示為解答 Lolota Lee 2010年2月5日 上午 05:39
    2010年1月29日 下午 01:51
    版主
  • 感謝大大用心的指導
    他的欄位長度是固定的,

    就是因為對C#的一些語法還非常陌生,
    如果能有個實際的程式列,
    對我這新手應該會比較容易理解,
    再次感謝你,
    2010年1月29日 下午 02:52
  • 它裡面不就有 Demo Code了嗎? 你總要先試試裡面的Demo Code吧 ?

    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月29日 下午 03:04
    版主