Разобрать CSV в .NET
У меня есть текстовый файл в формате запятых, разделенных"
на большинстве полей. Я пытаюсь передать это во что-то, через что я могу перечислить (например, Generic Collection). У меня нет контроля над тем, как выводится файл, и над тем, какой символ он использует для разделителя.
В этом случае поля разделяются запятой, а текстовые поля заключаются в"
Метки. Проблема, с которой я сталкиваюсь, состоит в том, что в некоторых полях есть кавычки (т.е. 8"
Tray) и случайно выбираются в качестве следующего поля. В случае числовых полей у них нет кавычек вокруг них, но они начинаются со знака + или - (обозначая положительное / отрицательное число).
Я думал о RegEx, но мои навыки не так хороши, так что, надеюсь, кто-то может предложить некоторые идеи, которые я могу попробовать. В этом файле содержится около 19 000 записей, поэтому я стараюсь сделать это максимально эффективно. Вот пара примеров строк данных:
"00","000000112260 ","Pie Pumpkin ","RET","6.99 "," ","ea ",+0000000006.99000
"00","000000304078 ","Pie Apple caramel ","RET","9.99 "," ","ea ",+0000000009.99000
"00","StringValue here","8" Tray of Food ","RET","6.99 "," ","ea ",-00000000005.3200
Есть еще много полей, но вы можете получить картину ....
Я использую VB.NET, и у меня есть общие настройки List, чтобы принять данные. Я пытался использоватьCSVReader и, кажется, работает хорошо, пока вы не достигнете записи, подобной третьей (с цитатой в текстовом поле). Если бы я мог как-то заставить его обрабатывать дополнительные кавычки, тогда опция CSVReader будет работать отлично.
Спасибо!