【发布时间】:2010-06-24 15:30:59
【问题描述】:
我收到一个必须解析的制表符分隔的文本文件。解析后,必须将这些部分分配给特定的列。
这是我用来执行此操作的代码示例:
string path = "C:\\Users\\Robert\\Desktop\\Test.txt";
FileInfo fileInfo = new FileInfo(path);
using (StreamReader streamReader = fileInfo.OpenText())
{
string line = "";
while ((line = streamReader.ReadLine()) != null)
{
string[] columns = line.Split('\t');
Output0Buffer.AddRow();
Output0Buffer.Column0 = columns[0];
Output0Buffer.Column1 = columns[1];
Output0Buffer.Column2 = columns[2];
Output0Buffer.Column3 = columns[3];
Output0Buffer.Column4 = columns[4];
}
}
问题在于文本文件中的某些行没有 5 列,并且当它尝试为 Column4 分配列 [4] 的值时,此代码失败(实际上,我的真实文件有 21零件,所以这更容易失败)。
如果有实际数据,如何重写它以仅将值分配给 Column4 (5,6 - 21)?另外,是否可以将其写入 for 或 foreach 循环以使其更整洁,这样我就不必为所有 21 列都写一行?
非常感谢任何帮助!
【问题讨论】:
标签: c# parsing text variable-assignment