728x90
반응형
WPF & C# - ASCII2HEX / HEX2ASCII / String2HexFormat ( ASCII2HEX2ASCII ) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
private void tbx_TextChanged(object sender, TextChangedEventArgs e)
{
if (rbtnHEX.IsChecked.Value)
{
tbx.Text = String2HexFormat(tbx.Text);
tbx.SelectionStart = tbx.Text.Length;
}
}
private void rbtnHEX_Checked(object sender, RoutedEventArgs e)
{
tbx.Text = ASCII2HEX(tbx.Text);
}
private void rbtnHEX_Unchecked(object sender, RoutedEventArgs e)
{
tbx.Text = HEX2ASCII(tbx.Text);
}
string HEX2ASCII(string str)
{
str = str.Replace("-", "");
str = str.Replace(" ", "");
byte[] raw = new byte[str.Length / 2];
for (int i = 0; i < raw.Length; i++)
{
raw[i] = Convert.ToByte(str.Substring(i * 2, 2), 16);
}
string s = Encoding.ASCII.GetString(raw);
return s;
}
string ASCII2HEX(string str)
{
byte[] buffer = Encoding.Default.GetBytes(str);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < buffer.Length; i++)
sb.AppendFormat("{0:X2} ", buffer[i]);
str = BitConverter.ToString(buffer).Replace("-", " ") + " ";
return str;
}
string String2HexFormat(string str)
{
str = str.Replace("-", "");
str = str.Replace(" ", "");
string val = "";
for (int i = 0; i < str.Length / 2; i++) // 2칸마다 빈칸 입력
{
val += str.Substring(i * 2, 2) + " ";
}
if (str.Length % 2 == 1)
val += str.Substring(str.Length - 1, 1);
val = val.TrimEnd(); // 삭제 시를 위한 부분
return val;
}
|
cs |
ASCII 에서 HEX 로 변환
HEX 에서 ASCII 로 변환
HEX 에서 문자열 수정 시 포멧 정렬
ASCII라디오버튼에 isChecked 함수를 넣어놨더니 tbx = NULL 이라고 에러가 뜨는 것이다.
그래서 HEX라디오버튼 으로 옮겼다.
728x90
반응형