我有这个代码块读取文本文件[Tab分隔]并返回一个数据表.但问题是它将文件或记录的第一行视为标题,并将剩余的行显示为记录,减去记录的数量 - 1所以现在我希望代码将文件的所有内容读作记录.
这是代码:
streamReader reader = new streamReader (filePath);
string line = reader.readLine();
Datatable dt = new Datatable ();
DataRow row;
string[] value = line.Split('\t');
foreach(string dc in value)
{
dt.columns.add(New DataColumn(dc));
}
while(!reader.endofStream)
{
value = reader.ReadLine().split('\t');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
return dt;
Run Code Online (Sandbox Code Playgroud)
当我试图删除
foreach(string dc in value)
{
dt.columns.add(New DataColumn(dc));
}
Run Code Online (Sandbox Code Playgroud)
和所有依赖它的行代码,dt什么都不返回.
我怎么解决呢?
如果你知道那里没有标题,我认为你不知道列的名称,不是吗?然后,您需要添加"匿名"列:
DataTable dt = new DataTable();
while (reader.Peek() >= 0)
{
string line = reader.ReadLine();
string[] fields = line.Split('\t');
if (dt.Columns.Count == 0)
{
foreach (string field in fields)
{
// will add default names like "Column1", "Column2", and so on
dt.Columns.Add();
}
}
dt.Rows.Add(fields);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13376 次 |
| 最近记录: |