读取csv时发现无效的数据行号
本文关键字:数据 无效 csv 发现 读取 | 更新日期: 2023-09-27 18:06:51
我的csv文件结构是:
int | only numbers
string | only characters
string | only characters
int | only numbers
char | only a character
假设CSV文件中的一行有无效数据-与确定的数据类型不匹配。例如:
27 | Patrick | 777 | 32 | Male
然后我想要无效的行号-在本例中是第27行。
请帮。
辅助方法:
bool ContainsOnlyNumbers( string input )
{
// beginning of string, one or more digits, end of string
return Regex.IsMatch( input, @"^'d+$" );
}
bool ContainsOnlyLetters( string input )
{
// beginning of string, one or more letters, end of string
return Regex.IsMatch( input, @"^[A-Za-z]+$" );
}
你需要考虑是否允许空格——你可能想在字符串上调用。trim。
我首先想到的是:
List<int> invalidRows;
int currentRow = 0;
var reader = new StreamReader(File.OpenRead(myfile));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(';');
if(rowHasErrors(values))
invalidRows.Add(currentRow);
currentRow++;
}
你需要写一个函数来检查row是否有错误