我正在尝试从制表符分隔的文本文件创建数据表。我很容易从文件中获取值。问题是当文本文件中有一个空列时,不会在数据表中创建相同的空列相反,下一个非空列内容将在空列区域中被替换
文本文件中的数据格式
id name product cost company name
1 abc shoe xxx
2 xyz chain yyy
得到的数据表
id name product cost company name
1 abc shoe xxx
2 xyz chain yyy
获取数据的代码
var reader = new StreamReader(File.OpenRead(@"d:\d.txt"));
var table = new DataTable("SampleTable");
string[] fieldValues = reader.ReadLine().Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < fieldValues.Length; i++)
{
table.Columns.Add(new DataColumn(fieldValues[i].ToString().Trim()));
}
while (!reader.EndOfStream)
{
var line = reader.ReadLine().Trim();
var values = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
string[] ee = values;
var newRow = table.NewRow();
for (int i = 0; i < ee.Length; i++)
{
newRow[i] = ee[i].Trim().ToString(); // like sample [0,0]
}
table.Rows.Add(newRow);
}
最佳答案
您通过设置选项 StringSplitOptions.RemoveEmptyEntries
告诉 Split
完全按照您观察到的操作 - 它会删除空条目。
删除此选项,它将保留空列。
关于c# - 制表符分隔文本文件中的空列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431063/