2012-11-28 1 views
0

다음 텍스트 파일 (acii 16 진수 형식)을 C#의 바이트 배열로 변환하는 가장 좋은 방법은 무엇입니까?바이트 파일의 텍스트 파일을 16 진수 형식으로 바이트 배열로 변환하는 방법 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

단계를 단계별로 나눕니다. 너 지금 무엇을 가지고 있니? 공백 및/또는 개행 문자로 구분 된 두 자리 16 진수 문자열이 있습니다.

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

먼저 문자열을 16 진수 값으로 나눕니다. String.Split은 완벽한 후보자처럼 들립니다.

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

다음, 당신은 바이트로 각각 두 자리 16 진수 값을 변환 할. Byte.Parse이 트릭을 수행해야합니다.

byte[] ar = groups.Select(s => Byte.Parse(s, NumberStyles.HexNumber)).ToArray(); 
관련 문제