2011-06-07 116 views
0

我正在创建一个将文本输出到文件的C#程序。我想根据设定的规格对齐所有信息。例如,我想line#有20个字符的空间,message info有25个字符的空间。如果空间未被使用,我希望它是空的空间。我到处搜索,无法找到任何工作。C#格式化文件的输出?

我已经在下面列出了一个基本的例子。我在帖子中使用了格式化期间,我不想在输出中使用它们。

 
Line #1.............Message Info #1  

Line #15............Message Info #15   

Line #534...........Message Info #534 
+0

正如你无论您打印多少个号码,都希望在'Message Info#1'和'Message Info#534'排队吗? – Tejs 2011-06-07 18:37:38

+0

考虑看'String.format'。请参阅http://msdn.microsoft.com/en-us/library/fht0f5be.aspx和http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx。 – MGwynne 2011-06-07 18:42:19

+0

是的,这是正确的。 – buzzzzjay 2011-06-07 18:43:53

回答

4

看这里net format a string with fixed spaces

var line1 = String.Format("{0,20}", s); 
+1

+1,尽管他们可能需要负面板(“{0,-20}”)。 ;-) – 2011-06-07 18:40:59

+0

有没有办法做到这一点与字符串以外的东西?示例int? – buzzzzjay 2011-06-07 19:07:35

+0

@buzzzzjay我不确定你的意思,但String.Format并不在乎它是否是Int32或String。为了证明它,你可以做myInt.ToString()并把它作为参数传递。 – 2011-06-07 22:06:51