我正在使用A Fast CSV Reader将一些粘贴的文本解析为网页。 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
任何想法,如果这是正确的方法?再次感谢您的帮助!
答案 0 :(得分:209)
using(TextReader sr = new StringReader(yourstring))
{
DoSomethingWithATextReader(sr);
}
答案 1 :(得分:7)
使用继承StringReader
。{/ p>的TextReader
类
答案 2 :(得分:4)
您需要StringReader
var val = "test string";
var textReader = new StringReader(val);
答案 3 :(得分:4)
StringReader
一个TextReader
(StreamReader
也是,但是从流中读取)。所以拿第一个例子,然后用它构建CsvReader
而不是试图从中构造StreamReader
首先给出:
TextReader sr = new StringReader(TextBox_StartData.Text);
using(CsvReader csv = new CsvReader(sr, true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
答案 4 :(得分:2)
只需使用StringReader课程即可。它继承自TextReader。
答案 5 :(得分:1)
如果查看the documentation for TextReader
,您将看到两个继承类。其中一个是StringReader
,它似乎正是你想要的。