读取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行。

请帮。

读取csv时发现无效的数据行号

辅助方法:

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是否有错误