Интересно, каков мой лучший вариант для анализа CSV в DataTable.
Мой CSV в этом формате
Разделитель: запятая
Разделитель: двойные кавычки (например, "строка")
Экранирование: двойные двойные кавычки
Вот пример:
Col1,Col2,Col3,Col4 1234,active,"This is a long text with new lines, commas and all", XGF232 1235,active,"This is also a ""long"" text with new lines and all", XHD233
- Проблема в том, что цифры или короткие; строки из одного слова не заключаются в кавычки.
- Другая проблема заключается в том, что длинные строки, заключенные в кавычки, которые также имеют вложенную «строку», экранируются с помощью «строки».
PS: Excel понимает этот формат без проблем.
РЕДАКТИРОВАТЬ:
Комментарии указали мне на разные варианты. Я искал доступные библиотеки и нашел LumenWorks.Framework.IO.Csv, который, кажется, отлично справляется со своей задачей.
Using csv As CsvReader = New CsvReader(New StreamReader(filename), True)
Dim fieldCount = csv.FieldCount
Dim headers() As String = csv.GetFieldHeaders()
dt.Load(csv)
End Using