【发布时间】:2019-03-22 19:05:08
【问题描述】:
我有一个制表符分隔文件,我想在 DataGridView (DGV) 中加载它;为此,我使用以下代码:
DataTable dt = new DataTable();
using (FileStream stream = File.OpenRead("logs.txt"))
{
using (StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while (line != null)
{
string[] items = line.Split('\t');
line = reader.ReadLine();
if (dt.Columns.Count == 0)
{
for (int i = 0; i < items.Length; i++)
{
dt.Columns.Add("Column " + i);
}
}
dt.Rows.Add(items);
}
dataGridView1.DataSource = dt;
}
}
问题在于每行的列数并不总是相同,这会产生错误“输入数组比此表中的列长”。
文字示例:
x xx xxx xxxx xxxxx
x xx xxx xxxx xxxxx xxxxxx xxxxxxx
x xx xxx xxxx xxxxx xxxxxx xxxxxxx xxxxxxxx xxxxxxxxx
鉴于问题,我该如何将所有文本文件传递给 DGV?
【问题讨论】:
-
有没有办法计算出文件可以有多少列的最大数量?是否有任何标准或规则可以确保文件中只有特定数量的列?
-
@ChetanRanpariya 遗憾的是,不,这就是让这有点复杂的原因:(
标签: c# .net parsing datagridview csv