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

本文关键字:文件 StreamReader 文本 分隔 制表符 | 更新日期: 2023-09-27 17:59:59

我对这篇文章有类似的要求。。。在运行时使用文本文件填充Gridview

如果我想用StreamReader读取文本文件,并用文件中的数据填充DataTable,但我不确定如何用选项卡实现split()

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

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

你可以试试这个:

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

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

如果只有制表符,则可以使用Split('''t'),但如果制表符是空白,则可能需要使用正则表达式