2012-11-28 40 views
0

將以下字節文本文件(acii十六進制格式)轉換爲C#中的字節數組的最佳方式是什麼?如何將十六進制格式的字節文本文件轉換爲字節數組在C#中

C7 40 04 96 96 C9 F3 3F C7 ED 
73 9D 3D 89 7D F6 2A 0B 4C 9D D6 82 E1 1F 4F F0 
1A 45 4F 35 C7 0C 2B 7F 50 40 AC 79 33 C0 DD 0C 
6B D2 9F D4 B6 60 9D 74 34 08 C5 19 92 1B 60 20 
62 2A 20 B5 03 D3 2A 1F 39 71 DA F5 EE 78 17 9A 
03 CA 3C E7 3E 10 75 C3 0F A5 AD AB C2 1D D6 35 
0D C8 FD B2 93 F9 6D 53 C6 67 7E F3 38 CE F6 78 
FA F5 0D 22 0B F3 FF 06 A2 51 4B E6 77 D5 49 B4 
38 72 E9 0B AB 56 92 6D 25 70 D6 4F 4E 6A EB 39 
F9 D2 7C 3B 97 66 35 74 A5 0E C0 1F EE E7 E7 CD 
DA FF 41 39 8B F6 18 6E F4 3A 00 AB 2C E8 F9 37 
7B 7C ED F4 50 43 F4 B2 F0 7C 39 9F 21 73 CF 7B 
DD E0 B5 0E 81 70 4D D1 A8 CD 4F 81 3D DC CA CC 
98 47 51 84 0C 00 48 07 0D 57 7B 3F 6A 24 A7 CA 
BD E4 FF 67 78 EB F4 0F D7 76 45 65 45 77 E8 30 
09 C4 51 DA A2 23 CC BF EE FC 9C 49 64 F5 5B F5 
9D 64 77 78 3C E7 

到目前爲止,我有一個方法將它變成一個所有這些值的字符串。

public string ProcessTextFile(string filepath) 
    { 
     string sTextFile; 
     string[] sDelimeters = { "\r\n" }; 
     string[] TextFileLines; 
     string sOutput; 

     using (System.IO.StreamReader sr = new System.IO.StreamReader(filepath)) 
     { 

      sTextFile = sr.ReadToEnd(); 
      TextFileLines = sTextFile.Split(sDelimeters, StringSplitOptions.None); 
      sOutput = string.Join(" ", TextFileLines); 
      sr.Close(); 
     } 

     return sOutput; 
    } 

回答

3

將問題分解成若干步驟。你現在有什麼?您有一個由空格和/或換行符分隔的兩位十六進制值的字符串。

string input = "C7 40 04 96 96 C9 F3 3F C7 ED ..."; 

首先,要將該字符串拆分爲十六進制值。 String.Split聽起來像一個完美的候選人。

string[] groups = input.Split(new[] {' ', '\n'}, StringSplitOptions.RemoveEmptyEntries); 

接下來,您要將每個兩位十六進制值轉換爲一個字節。 Byte.Parse應該這樣做。

byte[] ar = groups.Select(s => Byte.Parse(s, NumberStyles.HexNumber)).ToArray(); 
相關問題