Я использую программу чтения CSV для анализа вставленного текста на веб-страницу. Для чтения Fast CSV требуется объект TextReader, и все, что у меня есть, - это строка. Как лучше всего на лету преобразовать строку в объект TextReader?
Спасибо!
Обновление - Пример кода - В исходном примере новый StreamReader ищет файл с именем «data.csv». Я надеюсь предоставить его через TextBox_StartData.Text.
Использование этого кода ниже не компилируется.
TextReader sr = new StringReader(TextBox_StartData.Text);
using (CsvReader csv = new CsvReader(new StreamReader(sr), true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
new StreamReader(sr)
Говорит мне , что есть некоторые неверные аргументы. Любые идеи?
В качестве альтернативного подхода я пробовал это:
TextReader sr = new StreamReader(TextBox_StartData.Text);
using (CsvReader csv = new CsvReader(sr, true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
но я получаю Illegal characters in path Error.
вот образец строки из TextBox_StartData.Text:
Fname\tLname\tEmail\nClaude\tCuriel\tClaude.Curiel@email.com\nAntoinette\tCalixte\tAntoinette.Calixte@email.com\nCathey\tPeden\tCathey.Peden@email.com\n
Есть идеи, если это правильный подход? В очередной раз благодарим за помощь!
источник
TextReader
это не интерфейс, это абстрактный класс.Вам нужен StringReader
источник
StringReader
являетсяTextReader
(StreamReader
слишком, но для чтения из потоков). Итак, взяв ваш первый пример и просто используя его для построения,CsvReader
а не пытаясь построитьStreamReader
из него, сначала дает:источник
Просто используйте класс StringReader . Он наследуется от TextReader.
источник
Если вы посмотрите документацию для
TextReader
, вы увидите два наследующих класса. И один из нихStringReader
, кажется, делает именно то, что вы хотите.источник