每行校对 .CSV
Proof Reading .CSV per line
CSVHelper 和 FileHelper 不是一个选项
我有一个 .csv 导出文件,我需要检查其结构的一致性,如下所示
Reference,Date,EntryID
ABC123,08/09/2015,123
ABD234,08/09/2015,124
XYZ987,07/09/2015,125
QWE456,08/09/2016,126
我可以使用 ReadLine
或 RealAllLines
和 .Split
给我整个 rows/columns 但我需要 select 每行然后通过每个属性(以','分隔)用于格式检查
我 运行 遇到了这里的问题。对于此检查,我无法连续挑出每个值。
它可能是
上的一些简单的东西
class Program
{
static void Main(string[] args)
{
string csvFile = @"proof.csv";
string[] lines = File.ReadAllLines(csvFile);
var values = lines.Skip(1).Select(l => new { FirstRow = l.Split('\n').First(), Values = l.Split('\n').Select(v => int.Parse(v)) });
foreach (var value in values)
{
Console.WriteLine(string.Format("{0}", value.FirstRow));
}
}
}
或者我走错了路,我的搜索涉及提取特定的行或列(而不是检查相关的单个值)
上面的数据示例有一个突出显示的示例:日期是明年,我希望能够证明该值(只是一个示例,因为它可能出现在出现错误的任一列中)
I can not single out each value in a row
那是因为你在 \n
分裂了两次。一行中的值以逗号分隔 (,
)。
我不确定 LINQ 应该做什么,但就这么简单:
string[] lines = File.ReadAllLines(csvFile);
foreach (var line in lines.Skip(1))
{
var values = line.Split(',');
// access values[0], values[1] ...
}
而不是通过 OLEDB 对象读取它作为文本读取,因此 CSV 文件的数据将进入数据表,您不需要吐出它。
要读取 csv 文件,您可以使用这些 OLEDB 对象
System.Data.OleDb.OleDbCommand
System.Data.OleDb.OleDbDataAdapter
System.Data.OleDb.OleDbConnection
和
System.Data.DataTable
CSVHelper 和 FileHelper 不是一个选项
我有一个 .csv 导出文件,我需要检查其结构的一致性,如下所示
Reference,Date,EntryID
ABC123,08/09/2015,123
ABD234,08/09/2015,124
XYZ987,07/09/2015,125
QWE456,08/09/2016,126
我可以使用 ReadLine
或 RealAllLines
和 .Split
给我整个 rows/columns 但我需要 select 每行然后通过每个属性(以','分隔)用于格式检查
我 运行 遇到了这里的问题。对于此检查,我无法连续挑出每个值。 它可能是
上的一些简单的东西 class Program
{
static void Main(string[] args)
{
string csvFile = @"proof.csv";
string[] lines = File.ReadAllLines(csvFile);
var values = lines.Skip(1).Select(l => new { FirstRow = l.Split('\n').First(), Values = l.Split('\n').Select(v => int.Parse(v)) });
foreach (var value in values)
{
Console.WriteLine(string.Format("{0}", value.FirstRow));
}
}
}
或者我走错了路,我的搜索涉及提取特定的行或列(而不是检查相关的单个值)
上面的数据示例有一个突出显示的示例:日期是明年,我希望能够证明该值(只是一个示例,因为它可能出现在出现错误的任一列中)
I can not single out each value in a row
那是因为你在 \n
分裂了两次。一行中的值以逗号分隔 (,
)。
我不确定 LINQ 应该做什么,但就这么简单:
string[] lines = File.ReadAllLines(csvFile);
foreach (var line in lines.Skip(1))
{
var values = line.Split(',');
// access values[0], values[1] ...
}
而不是通过 OLEDB 对象读取它作为文本读取,因此 CSV 文件的数据将进入数据表,您不需要吐出它。
要读取 csv 文件,您可以使用这些 OLEDB 对象
System.Data.OleDb.OleDbCommand
System.Data.OleDb.OleDbDataAdapter
System.Data.OleDb.OleDbConnection
和
System.Data.DataTable