C# 制表符分隔的文本文件

C# 制表符分隔的文本文件,c#,datagridview,text-files,C#,Datagridview,Text Files,我能够读取文本文件中包含的数据。然后将这些数据编码为显示在datagridview中。数据的原始格式是逗号分隔的。现在我想使用datagridview的数据来保存它,而不是使用制表符分隔 问题是,并不是所有的字段都是等长的,所以给我一些类似的东西 A B C 1 567889 123 应该是这样的, A B C 1 567889 123 我想要的第二个例子 ABCDE ABC A 123 1258741 528712 因此,无论是标题长度列还是数据长度列 我将字符串生

我能够读取文本文件中包含的数据。然后将这些数据编码为显示在datagridview中。数据的原始格式是逗号分隔的。现在我想使用datagridview的数据来保存它,而不是使用制表符分隔

问题是,并不是所有的字段都是等长的,所以给我一些类似的东西

A B C
1 567889 123
应该是这样的,

A B      C
1 567889 123
我想要的第二个例子

ABCDE ABC     A
123   1258741 528712
因此,无论是标题长度列还是数据长度列


我将字符串生成器用作,
sb.Append(“{0}\t,{1}\t”,field1,field2)
,但它不起作用。还尝试了写入。如果希望可视化由
选项卡
字符分隔的垂直对齐可变长度数据项,则写入(字段+“\t”)记事本不是正确的工具

使用支持弹性制表位的编辑器,例如:(向下滚动到Java小程序演示,以便您可以尝试使用单个制表位粘贴文本)


或者将文本粘贴到设计用于处理列的工具中,如Excel。它会自动将选项卡识别为列分隔符。

您可以使用
String.PadRight
以这种方式格式化文本

您只需要使用“”填充标题的长度,然后添加选项卡

例如:

string line = string.Format("{0}\t{1}\t{2}", field1.PadRight(header1.Length, ' ')
                                           , field2.PadRight(header2.Length, ' ')
                                           , field3.PadRight(header3.Length, ' ')));
结果:

ABCDE   A       ABC
5       356475  5657
566     66      4

所以你不想在标题上删除制表符,只想删除数据?所有的列数据都是相同长度的吗,例如:列“B”是6个数字还是更多/更少,如果是这样,您希望将标题与最长的列或仅第一行列数据对齐?您能更清楚地说明“它不工作”的结果是什么吗?你用什么写在文件上?添加两个选项卡而不是一个选项卡是否足够?结果是第一个示例。问题是标题与数据不正确对齐。我想将其对齐,使标题与数据匹配,无论标题文本是否长于数据列或反之亦然。我编辑了。。。请阅读上面的内容…你用什么来可视化结果?如果是CMD窗口,则每个
选项卡
字符将文本放置在8个字符列的下一个边界的开始处。如果将输出重定向到.txt文件,打开文本文件,复制内容,然后粘贴到Excel中,是否有效?