sharp programacion orientado orientada objetos lenguaje ejercicios ejemplos descargar clases c# csv csvhelper textreader

programacion - lenguaje c# pdf



En C#, ¿cómo puedo crear un objeto TextReader a partir de una cadena(sin escribir en el disco) (6)

Quieres un StringReader

var val = "test string"; var textReader = new StringReader(val);

Estoy usando A Fast CSV Reader para analizar el texto pegado en una página web. El lector Fast CSV requiere un objeto TextReader, y todo lo que tengo es una cadena. ¿Cuál es la mejor manera de convertir una cadena en un objeto TextReader sobre la marcha?

¡Gracias!

Actualización: código de muestra: en el ejemplo original, un nuevo StreamReader está buscando un archivo llamado "data.csv". Espero suministrarlo a través de TextBox_StartData.Text.

El uso de este código a continuación no se compila.

TextReader sr = new StringReader(TextBox_StartData.Text); using (CsvReader csv = new CsvReader(new StreamReader(sr), true)) { DetailsView1.DataSource = csv; DetailsView1.DataBind(); }

El new StreamReader(sr) me dice que tiene algunos argumentos inválidos. ¿Algunas ideas?

Como un enfoque alternativo, he intentado esto:

TextReader sr = new StreamReader(TextBox_StartData.Text); using (CsvReader csv = new CsvReader(sr, true)) { DetailsView1.DataSource = csv; DetailsView1.DataBind(); }

pero obtengo Illegal characters in path Error. Aquí hay una muestra de la cadena de 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

Alguna idea si este es el enfoque correcto? ¡De nuevo, gracias por tu ayuda!



Simplemente use la clase StringReader . Hereda de TextReader.


Use System.IO.StringReader :

using(TextReader sr = new StringReader(yourstring)) { DoSomethingWithATextReader(sr); }


Use la clase StringReader , que hereda TextReader .


StringReader es un TextReader ( StreamReader es también, pero para leer de las transmisiones). Así que, tomando primero su primer ejemplo y simplemente usándolo para construir el CsvReader lugar de tratar de construir un StreamReader , primero da:

TextReader sr = new StringReader(TextBox_StartData.Text); using(CsvReader csv = new CsvReader(sr, true)) { DetailsView1.DataSource = csv; DetailsView1.DataBind(); }