csv ファイルを読み取るための次のコード セグメントがあります。本当に標準的ではない行を読むことに問題があります。たとえば、次のような行
105,"XXX Bank Azerbaijan" CJSC,1078 ,AZ,Baku,"xxx street",Nasimi district
2 番目のフィールド「XXX Bank Azerbajan」CJSC には、コンマのすぐ隣に引用符がないため、catch フィールドに入ります。ただし、このファイルを Excel で開くと、問題はなく、次のようにフィールドが正しく分割されます。
105|XXX Bank Azerbaijan CJSC|1078|AZ|Baku|xxx street|Nasimi district
|
列区切りとして使用した場所。を使用して同じ効果を得る方法はありTextFieldParser
ますか。それ以外の場合は、別の csv リーダーを使用する必要があります。
using (TextFieldParser parser = new TextFieldParser(fileName, Encoding.GetEncoding("windows-1252")))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
parser.TrimWhiteSpace = true;
parser.HasFieldsEnclosedInQuotes = true;
parser.ReadLine(); // Reads dummy header
while (!parser.EndOfData)
{
try
{
string[] fieldRow = parser.ReadFields();
T fieldsClass = new T();
fieldsClass.Initialize(fieldRow);
data.Add(fieldsClass);
rowCount++;
}
catch
{
Console.WriteLine("Skipping line" + parser.ErrorLine);
}
}
}