CsvParser 遗漏了一些带有指定分隔符的地方

CsvParser misses some places with specified delimeter

我有一个 C# 代码可以解析数据并使用“@BELL”作为分隔符。 (BELL为ASCII码)

但有些值的末尾有另一个“@”,因此它看起来像这样“0.0000000@SS-AA&-BB-C)@@021328@STRING_Price”。 CsvParser 确实在第一个“@”处拆分,但错过了第 2 次出现(它有“@@”的地方)并在第 3 次出现时很好地拆分。 源中的数据不能修改,必须保持原样。

我们正在使用 CsvHelper v 15.0.0。

这是一个已知的 CsvParser 问题吗? (我试图在不添加额外的 parsing/replacement 的情况下离开)。

这是我的代码(我对其进行了简化并使用本地文件进行测试,但实际上它转到了 AzureBlobStorage):

private static readonly string delimiter = "@" + new string('\u0007', 1);
private static string filePath = "C:\Downloads\000_From_Blob";

private static IEnumerable<string[]> ParseCompressedClientFormattedStream(string filePath, string delimiter)
{
    using (var remoteStream = File.OpenText(filePath))
    {
        using (var csvReader = new CsvParser(remoteStream, new CsvConfiguration(CultureInfo.InvariantCulture) { Delimiter = delimiter.ToString(), BadDataFound = null }))
        {
                for (; ; )
                {
                    var line = csvReader.Read();
                    if (line != null) yield return line;
                    else break;
                }
         }
    }
}

这是源文件中的 2 个示例行。第一行被正确解析。但是第二个没有拆分它有双“@”的地方:

110@A778@10211@2@Joe@0.0000000@SS-AA&-BB-C)@@SS-AA&-BB-C)@021328@STRING_Price@.99@@False
111@A778@10211@2@Joe@0.0000000@SS-AA&-BB-C)@@@SS-AA&-BB-C)@@021328@STRING_Price@.99@@False

这似乎是 v15.0.0 的 CsvHelper 包中的错误。 将其更新到最新版本 15.0.5 - 已解决问题。