【发布时间】:2014-11-13 09:49:57
【问题描述】:
我正在编写一个日志解析器,并且想将输出数据排序为列,目前使用以下代码:
string OEMVersion = string.Format("{0,-20} {1}", "OEM Version", GetXMLData(doc, "OemMarkerVersion"));
string OEMID = string.Format("{0,-20} {1}", "OEM ID", GetXMLData(doc, "OemId"));
string OEMTableID = string.Format("{0,-20} {1}", "OEM TableID", GetXMLData(doc, "OemTableId"));
string Manufacturer = string.Format("{0,-20} {1}", "Manufacturer", GetXMLData(doc, "Manufacturer"));
string Model = string.Format("{0,-20} {1}", "Model", GetXMLData(doc, "Model"));
要对填充进行排序,但输出仅适用于某些字体(Consolas、Lucinda Console 等)。如何用制表符而不是空格填充列来克服这个问题? string.Format() 似乎不允许我这样做。谢谢。
【问题讨论】:
-
具有比例宽度的字体不容易对齐。另外,如果您使用标签。
-
即使使用选项卡,根据您的内容,您的输出也可能无法正确对齐。这意味着如果您的第二个“制造商”值比第一个多 4 或 8 个字符,那么标签会将第二个推出。
-
我想知道这种对齐的原因。如果这些变量只是简单地写入文件,则无需担心。当前代码完美地对齐它们,这只是使用正确字体的问题。如果这些变量应该在视频中输出,那么我建议使用
ListView或DataGridView让数据按列和行对齐,而无需手动对齐它们 -
谢谢大家的回复,我想我想要的解决方案不存在。 @Steve,它只是简单地写入了一个新的文本文件,我希望为所有字体提供一个漂亮整洁的输出,但从事情的声音来看这是无法完成的。