【发布时间】:2013-02-20 09:56:27
【问题描述】:
我们编写了一个粗略的数据范围。
(我们发现的免费终端程序无法跟上蓝牙速度)
结果没问题,我们正在将它们写入逗号分隔的文件中,以便与电子表格一起使用。最好在 RichTextBox 的漂亮列中看到十六进制值排列,而不是现在的样子(附加屏幕上限)。
这是将数字(例如,从 0 到 FF 的数字)添加到 RichTextBox 中的文本的例程。
public void Write(byte[] b)
{
if (writting)
{
for (int i = 0; i < b.Length; i++)
{
storage[sPlace++] = b[i];
pass += b[i].ToString("X") + " "; //// <<<--- Here is the problem
if (sPlace % numericUpDown1.Value == 0)
{
pass += "\r\n";
}
}
}
}
我希望指令 pass += b[i].ToString("X") + " "; 在从 00h 到 0Fh 的值上产生前导零
或者,将字节 b 中的值转换为从 00 到 FF 的两个字母字符的其他方法
左边的数字,FF 40 0 5 排列整齐,因为它们是相同的。一旦我们遇到数据中的任何差异,列就会消失,并且人类观察数据变得非常难以阅读。
【问题讨论】:
-
你可能已经不在乎了,但这确实应该使用StringBuilder,而不是重复连接字符串。
-
您的 UI 控件是否也使用等宽字体?看起来 1 比 A 窄得多,所以即使你很好地格式化了十六进制,它仍然会错位