我对这篇文章有类似的要求...... Populate Gridview at runtime using textfile
我想要使用StreamReader
阅读文本文件并使用文件中的数据填充DataTable
,但我不确定如何使用标签实现split()
。
有人能指出我正确的方向吗?
答案 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