【发布时间】:2017-04-14 14:00:23
【问题描述】:
我在一个文本文件中有大量的文本表,我可以在我的 winform 应用程序中读取数据,但是数据网格中有一些不规则的数据。我只需要将表格原样放入我的数据网格中。我想从数据中捕获“*(3)”并使用该数字我想拆分下面的数据。 Plate Id 列可以有 n 个 Id。因此,根据该 Plate Id 的 X 坐标和 Y 坐标将添加到其中。如何在不干扰其结构的情况下将此表数据放置在数据网格中?我需要再次重用数据网格中的这些数据。
*( 3)CAR PLATE COORDINATES:
* No. Plate Plate No. X-Coord Y-Coord
* Plate Type Id Coord (in) (in)
2 'CA' 1 5 8.6250 -23.3750
32.6249 -23.3750
46.5983 120.6250
46.5983 120.6250
8.6250 120.6250
'CA' 2 5 8.6250 120.6250
46.5983 120.6250
64.6250 306.3959
59.3717 369.4359
8.6250 365.2070
'CA' 3 5 8.6250 120.6250
46.5983 120.6250
64.6250 306.3959
59.3717 369.4359
8.6250 365.2070
lbl2.Text = fdlg.FileName;
IEnumerable<String> lines = File.ReadLines(lbl2.Text);
if (lines.Count() > 0 && lines.Contains("*( 3)"))
{
foreach (var columnName in lines.FirstOrDefault().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
{
dataGridView3.Columns.Add(columnName, columnName);
while (lines.Contains(null))
break;
foreach (var cellValues in lines.Skip(1))
{
var cellArray = cellValues.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
while (lines.Contains("*("))
{
foreach (var columnName in lines.FirstOrDefault()
.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
dataGridView3.Columns.Add(columnName, columnName);
}
}
}
}
【问题讨论】:
-
也许可以尝试创建一些辅助类。把所有东西都放在一个方法中是一个非常糟糕的主意。将此代码至少分为两部分:1)解析文件,2)填充数据网格