【发布时间】:2013-08-07 17:01:31
【问题描述】:
这是我的第一篇文章,我是 C# 的新手,所以请温柔:P。 我正在编写正在读取一些 txt 文件然后在 gridview 中显示它们的应用程序(我稍后会用它做更多的事情,但现在并不重要)。几乎我所有的文件都有一些已建立的字符系统(总是有三列用逗号分隔),在这里我将它们放入列表然后绑定到 gridview 没有问题。 但是我也有一些文件没有相同的字符系统,我在处理它们时遇到了问题。你能帮我以某种方式将它们格式化为这个原始的字符系统(我的意思是这个带逗号的系统)。 Bellow 是将所有内容加载到列表然后加载到 gridview 的函数。我还发布了具有良好字符系统的文件示例,而这个没有格式化。
29-01-2013 03:49:31.629,一些文本 ghs(23).asv1,更多文本
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 一些文本 fsdf1 一些更多文本
-
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 表达式,我的文本格式看起来像这样。 Field1>(6)Field2>(23)Field3>(2)Field4>(50+) 字段 3 是用作分隔符的空格,是否可以在处理文本时将它们更改为逗号??
【问题讨论】:
-
如果没有您想要格式化的数据示例,很难提供建议。我要做的第一件事是删除所有的空白。 “未格式化”文件中的分隔符是什么。
-
如上例所示。它以几个空格开头,然后我的数字带有“。”在它之后,然后是 2 个空格,最后是我感兴趣的数据。在这种情况下,分隔符是 2 个空格。
-
第一部分很容易分隔,从左边开始寻找第二个空格并在该位置断开,但是将第二列和第三列分开几乎是不可能的,除非第二列总是保证以数字结尾(可能后跟括号或方括号)。
-
好的,但是我应该如何执行这个任务呢?我怎样才能摆脱这部分文本。在搜索第二个空间时,我还应该使用正常的拆分选项吗?
标签: c# .net visual-studio-2010