136

A Fast CSV Readerを使用して、貼り付けられたテキストを Web ページに解析しています。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

これが正しいアプローチである場合、何かアイデアはありますか? ご協力いただきありがとうございます。

4

6 に答える 6

270

System.IO.StringReaderを使用します。

using(TextReader sr = new StringReader(yourstring))
{
    DoSomethingWithATextReader(sr);
}
于 2011-10-20T14:56:09.087 に答える
9

StringReaderを継承するクラスを使用しTextReaderます。

于 2011-10-20T14:55:58.430 に答える
5

StringReader ですTextReader(StreamReaderも同様ですが、ストリームからの読み取り用です) 。したがって、最初の例を使用して、最初からCsvReadera を構築しようとするのではなく、それを使用してを構築するだけで次のようになります。StreamReader

TextReader sr = new StringReader(TextBox_StartData.Text);
using(CsvReader csv = new CsvReader(sr, true))
{
  DetailsView1.DataSource = csv;
  DetailsView1.DataBind();
}
于 2011-10-20T15:39:40.713 に答える
4

あなたはStringReaderが欲しい

var val = "test string";
var textReader = new StringReader(val);
于 2011-10-20T14:56:53.667 に答える
2

StringReaderクラスを使用するだけです。TextReader を継承しています。

于 2011-10-20T14:57:07.610 に答える
1

のドキュメントをTextReader見ると、 2 つの継承クラスが表示されます。そのうちの 1 つは でありStringReader、これはまさにあなたが望むことを行うようです。

于 2011-10-20T14:57:30.483 に答える