Вот данные, которые я пытаюсь импортировать из CSV
Time|Person|Products|Address
(now)|person1|val1*val2*val3|adr1
, где *
- перевод строки / возврат каретки
вот как это выглядит, когда я его импортирую:
(now)|person1|val1val2val3|adr1
Вот как мне нужно, чтобы он выглядел:
(now)|person1|val1|adr1
(now)|person1|val2|adr1 etc.
Я пробовал: пользовательское кодирование синтаксического анализатора CSV, основанного в основном на string.Spilt()
, оно дало мне точный результат и занимало целую вечность. Я попробовал CSVReader
Себастьяна Лориона, и он дает мне точно такой же результат, хотя его было заметно быстрее и легче вставить в мой существующий код. Я даже попробовал VB TextFieldParser
с точно таким же результатом.
Теперь вот что я подумал сделать:
Каким-то образом передают значения поля (я понятия не имею, как ссылаться на них), когда я достигаю его, к другому методу, который возвращает объект List<string>
, через который я могу перебирать и добавлять в DataTable и оттуда делать то, что нужно , Удалите мой мозговой ствол старой вилкой. Ходить вокруг, бормоча себе под нос.
Вот код TextFieldParser:
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
TextFieldParser parser = new TextFieldParser(new StreamReader(op.FileName));
parser.SetDelimiters(",");
while (!parser.EndOfData)
{
contents.AddRange(parser.ReadFields());
}