Saya menggunakan A Fast CSV Reader untuk mengurai beberapa teks yang ditempelkan ke dalam halaman web. Pembaca CSV Cepat membutuhkan objek TextReader, dan yang saya miliki hanyalah string. Apa cara terbaik untuk mengubah string menjadi objek TextReader dengan cepat?
Terima kasih!
Perbarui- Kode sampel- Dalam sampel asli, StreamReader baru sedang mencari file bernama "data.csv". Saya berharap untuk memasoknya melalui TextBox_StartData.Text.
Menggunakan kode di bawah ini tidak dapat dikompilasi.
TextReader sr = new StringReader(TextBox_StartData.Text);
using (CsvReader csv = new CsvReader(new StreamReader(sr), true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
Itu new StreamReader(sr)
memberi tahu saya bahwa ada beberapa argumen yang tidak valid. Ada ide?
Sebagai pendekatan alternatif, saya telah mencoba ini:
TextReader sr = new StreamReader(TextBox_StartData.Text);
using (CsvReader csv = new CsvReader(sr, true))
{
DetailsView1.DataSource = csv;
DetailsView1.DataBind();
}
tapi saya mendapatkan Illegal characters in path Error.
Berikut ini contoh string dari 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
Adakah ide jika ini pendekatan yang tepat? Sekali lagi terima kasih atas bantuan Anda!
sumber
TextReader
bukan antarmuka, ini kelas abstrak.Anda menginginkan StringReader
sumber
StringReader
adalah sebuahTextReader
(StreamReader
terlalu, tapi untuk membaca dari stream). Jadi, mengambil contoh pertama Anda dan hanya menggunakannya untuk membuatCsvReader
daripada mencoba membuatStreamReader
dari itu pertama memberikan:sumber
Cukup gunakan kelas StringReader . Ini mewarisi dari TextReader.
sumber
Jika Anda melihat dokumentasinya
TextReader
, Anda akan melihat dua kelas yang mewarisi. Dan salah satunya adalahStringReader
, yang tampaknya melakukan apa yang Anda inginkan.sumber