programing tip

C #에서는 디스크에서 쓰지 않고 문자열에서 TextReader 개체를 만드는 방법

itbloger 2020. 7. 23. 19:07
반응형

C #에서는 디스크에서 쓰지 않고 문자열에서 TextReader 개체를 만드는 방법


붙여 넣은 텍스트를 웹 페이지로 구문 분석하기 위해 빠른 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();
        }

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

이것이 올바른 접근법이라면 어떤 아이디어? 도와 주셔서 감사합니다!


System.IO.StringReader를 사용하십시오 .

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

StringReader상속 하는 클래스를 사용하십시오 TextReader.


당신은 StringReader를 원합니다

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

StringReader 되는TextReader ( StreamReader스트림로부터도하지만 독서를한다). 따라서 첫 번째 예제를 가져 와서 처음부터 구성하는 CsvReader대신 구성하는 데 사용하십시오 StreamReader.

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

간단히 StringReader 클래스를 사용하십시오 . TextReader에서 상속됩니다.


당신이 보는 경우에 대한 설명서TextReader , 두 개의 상속 클래스를 볼 수 있습니다. 그리고 그들 중 하나는 StringReader원하는 것입니다.

참고 : https://stackoverflow.com/questions/7837826/in-c-how-can-i-create-a-textreader-object-from-a-string-without-writing-to-di

반응형