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/[email protected]/nAntoinette/tCalixte/[email protected]/nCathey/tPeden/[email protected]/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(); }