这是我的第一篇文章,我是C#的新手,所以请保持温柔:P。 我正在编写正在读取一些txt文件的应用程序,然后在gridview中显示它们(我后来用它做了一些更多的事情,但现在它并不重要)。几乎所有的文件都有一些已建立的字符系统(总有三列用逗号分隔),这里我没有问题,阅读它们放入列表然后绑定到gridview。 但我也有一些文件没有相同的字符系统,我有处理它们的问题。你能帮助我以某种方式将它们格式化为这个原始的字符系统(我的意思是这个用逗号表示)。 Bellow是我将所有内容加载到列表然后进入gridview的功能。我还发布了具有良好系统的文件的例子,这个没有格式化。
29-01-2013 03:49:31.629,一些文字ghs(23).asv 1,更多文字
17-07-2011 12:12:32.643,有些文字还有dsad(1),更多文字
31-01-2013 08:14:08.473,一些文字sdfsdfsd [2],更多文字
未格式化的文本在开始时有一些空格,然后是一些数字,(点)和另一个空格。在此之后,我想开始阅读并摆脱以前的一切。此外,在我的正确数据之间,它没有逗号而是空格。它是这样的。
拜托,伙计们,你可以帮助我吗?
23-05-2009 12:12:45.675一些文字fsdf 1更多文字
13-02-2003 11:12:45.454一些文字sdfsdfS(1)更多文字
private void button7_Click(object sender, EventArgs e)
{
List<MyColumns> list = new List<MyColumns>();
OpenFileDialog openFile1 = new OpenFileDialog();
openFile1.Multiselect = true;
if (openFile1.ShowDialog() != DialogResult.Cancel)
{
foreach (string filename in openFile1.FileNames)
{
using (StreamReader sr = new StreamReader(filename))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] _columns = line.Split(",".ToCharArray());
MyColumns mc = new MyColumns();
mc.Time = _columns[0];
mc.System_Description = _columns[1];
mc.User_Description = _columns[2];
list.Add(mc);
}
}
}
DataTable ListAsDataTable = BuildDataTable<MyColumns>(list);
DataView ListAsDataView = ListAsDataTable.DefaultView;
this.dataGridView1.DataSource = view = ListAsDataView;
this.dataGridView1.AllowUserToAddRows = false;
dataGridView1.ClearSelection();
}
textBox1.Text = this.dataGridView1.Rows.Count.ToString();
}
我还在考虑使用reg expresions,我的文本格式看起来像这样。 Field1&gt;(6)Field2&gt;(23)Field3&gt;(2)Field4&gt;(50+)field 3是用作分隔符的空格,是否可以将它们改为逗号,同时使用文本??
< / LI> 醇>答案 0 :(得分:0)
如果它是固定宽度的列,那么一种方法是使用string.Substring,然后使用string.Trim修剪每列的结果。
答案 1 :(得分:0)
是否为CSV文件 - 所有字段都以“,”分隔。如果是这样,你自己一个忙,不要试图自己解析csv - 做正确的事可能会非常棘手。 我用KBCSV获得了一个免费的C#库,它可以轻松地将csv文件读入数据表。