Hai*_*ter 115 c# csv textreader csvhelper
我正在使用快速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();
}
Run Code Online (Sandbox Code Playgroud)
该new StreamReader(sr)告诉我它有一些无效的参数.有任何想法吗?
作为替代方法,我试过这个:
TextReader sr = new StreamReader(TextBox_StartData.Text);
using (CsvReader csv = new CsvReader(sr, true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个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
Run Code Online (Sandbox Code Playgroud)
如果这是正确的方法,任何想法?再次感谢你的帮助!
Ste*_*e B 223
using(TextReader sr = new StringReader(yourstring))
{
DoSomethingWithATextReader(sr);
}
Run Code Online (Sandbox Code Playgroud)
使用StringReader继承的类TextReader.
你想要一个StringReader
var val = "test string";
var textReader = new StringReader(val);
Run Code Online (Sandbox Code Playgroud)
StringReader is a TextReader(StreamReader也是,但用于从流中读取)。因此,以您的第一个示例为例,仅使用它来构造CsvReader而不是首先尝试从中构造 aStreamReader给出:
TextReader sr = new StringReader(TextBox_StartData.Text);
using(CsvReader csv = new CsvReader(sr, true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
Run Code Online (Sandbox Code Playgroud)