我有这个职位类似的要求... Populate Gridview at runtime using textfile的StreamReader与制表符分隔文本文件
,我想读的文本文件StreamReader
,并使用该文件中的数据DataTable
,但是我我不知道如何通过选项卡实现split()
。
请问有人能指出我正确的方向吗?
我有这个职位类似的要求... Populate Gridview at runtime using textfile的StreamReader与制表符分隔文本文件
,我想读的文本文件StreamReader
,并使用该文件中的数据DataTable
,但是我我不知道如何通过选项卡实现split()
。
请问有人能指出我正确的方向吗?
你可以试试这个:
DataTable table = new DataTable();
table.Columns.Add("col1");
table.Columns.Add("col2");
table.Columns.Add("col3");
var lines = File.ReadAllLines(@"Data.txt").ToList();
lines.ForEach(line => table.Rows.Add(line.Split((char)9)));
我推测行是由换行符分隔的(如果是这种情况,可以使用ReadAllLines
方法)。数字9是水平制表符的ASCII值,用于分割线条。 ForEach
是一种可用于通用列表的方法,它在那里而不是foreach
循环。
如果只有制表符,你可以使用斯普利特(“\ t”),但如果制表符空格,你可能想使用regular expressions
在C#制表转义字符是\t
,所以读取文件和分割选项卡上每一行我会使用
var path = "path to file";
using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0)
{
//Reads the line, splits on tab and adds the components to the table
table.Rows.Add(sr.ReadLine().Split('\t'));
}
}
sr.ReadLine()。分割(“\ t”的) ;用于vb不知道这一点。 – Neha 2013-02-19 09:50:39
字段由制表符分隔,行如何分隔?换行符? – 2013-02-19 09:53:19
新行是新行。这是一个相当简单和标准的edi文件格式,我正在尝试读取并显示给最终用户。 – Stuart 2013-02-19 10:03:02