带有制表符分隔文本文件的StreamReader

时间:2013-02-19 09:47:29

标签: c# asp.net split streamreader tab-delimited-text

我对这篇文章有类似的要求...... Populate Gridview at runtime using textfile

我想要使用StreamReader阅读文本文件并使用文件中的数据填充DataTable,但我不确定如何使用标签实现split()

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:13)

你可以试试这个:

        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循环。

答案 1 :(得分:2)

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'));
    }
}

答案 2 :(得分:0)

如果您只有制表符,则可以使用拆分('\ t'),但如果制表符是空格,则可能需要使用regular expressions