সি # তে, আমি কীভাবে একটি স্ট্রিং (ডিস্কে না লিখে) একটি টেক্সটরিডার অবজেক্ট তৈরি করতে পারি


126

আমি একটি ওয়েবপৃষ্ঠায় কিছু পেস্ট করা পাঠ্যকে পার্স করতে একটি ফাস্ট সিএসভি রিডার ব্যবহার করছি । দ্রুত সিএসভি পাঠকের জন্য একটি টেক্সটরিডার অবজেক্ট প্রয়োজন এবং আমার কাছে যা আছে তা একটি স্ট্রিং। স্ট্রিংটিকে ফ্লাইয়ের টেক্সটরিডার অবজেক্টে রূপান্তর করার সর্বোত্তম উপায় কী?

ধন্যবাদ!

আপডেট- নমুনা কোড- আসল নমুনায় একটি নতুন স্ট্রিমরিডার "ডেটা সিএসভি" নামে একটি ফাইল সন্ধান করছে। আমি এটি পাঠ্যবক্স_সার্টডাটা.টেক্সটের মাধ্যমে সরবরাহ করার প্রত্যাশা করছি।

নীচে এই কোড ব্যবহার করে সংকলন হয় না।

        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.এখানে টেক্সটবক্স_সার্টডাটা ডেটা থেকে স্ট্রিংয়ের একটি নমুনা পেয়েছি e পাঠ্য:

Fname\tLname\tEmail\nClaude\tCuriel\tClaude.Curiel@email.com\nAntoinette\tCalixte\tAntoinette.Calixte@email.com\nCathey\tPeden\tCathey.Peden@email.com\n

কোন ধারণা যদি এটি সঠিক পদ্ধতির হয়? আপনার সাহায্যের জন্য আবার ধন্যবাদ!

উত্তর:



9

ব্যবহার করুন StringReaderবর্গ, যা উত্তরাধিকারী TextReader


3
TextReaderইন্টারফেস নয়, এটি একটি বিমূর্ত শ্রেণি।
এসভিচ


4

StringReader এটি একটি TextReader( StreamReaderখুব, তবে স্ট্রিম থেকে পড়ার জন্য)। সুতরাং আপনার প্রথম উদাহরণটি গ্রহণ করা এবং এটির থেকে এটির CsvReaderনির্মাণের চেষ্টা করার চেয়ে StreamReaderএটি নির্মাণের জন্য প্রথমে এটি দেয়:

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

ধন্যবাদ জন ... আমি মনে করি দ্রুত সিএসভি ফ্রেমওয়ার্কের সাথে একটি বাগ আছে। আমি এর মত দেখতে একটি ফলাফল পাচ্ছি:! স্ক্রিনকাস্ট .
com

আমার সিএসভি হ'ল নাম, নাম, ইমেল জন, ডো, জেডি @ ইমেল ডটকম
হেয়ারগামি_মাস্টার

1
এটি (আমি দেখার পরে উত্স দেখার পরে যে আপনি যেভাবেই স্ক্রিনকাস্ট ডটকম / টি / ৫ ডব্লিউজেডআরজেডিএমও-র সাথে সংযোগ করছেন ) দেখে মনে হচ্ছে আপনি স্ট্রিংয়ের একটি অ্যারে তৈরি করছেন (প্রতিটি লাইনের জন্য একটি), এবং সেগুলি রেন্ডার করার চেষ্টা করছেন, যার ফলস্বরূপ "System.String []" পাঠ্যটি পুনরাবৃত্তি হয়েছে। এটি আমার কাছে সিএসভি পার্সারের যুক্তিসঙ্গত ফলাফলের মতো বলে মনে হচ্ছে, ভালভাবে পরিচালনা করা হয়নি। এটিকে গ্রিড-ভিউতে আউটপুট করার চেষ্টা করুন এবং দেখুন কী ঘটে।
জন হান্না

ধন্যবাদ জোন- আসলে, আমি একটি গ্রিডভিউ ব্যবহার করছি, আমি তাদের বেশ কয়েকটি চেষ্টা করেছি, তবে আমি অনুমান করছি যে তথ্যটি সঠিকভাবে ফিরিয়ে দেওয়া হচ্ছে, এটি সঠিকভাবে ডেটা প্রদর্শন নিয়ন্ত্রণ নিয়ন্ত্রণ চয়ন করার বিষয় মাত্র .. ??
হেয়ারগামি_মাস্টার

1
আমি নিয়ন্ত্রণের ভারী ব্যবহার না করার প্রবণতা রাখি, তাই এখানে আমি মিস করছি এমন কিছু জিনিস থাকতে পারে। আউটপুটটি স্ট্রিংগুলির অ্যারেগুলির একটি সিরিজ বলে মনে হচ্ছে (প্রতিটি সারির জন্য একটি অ্যারে, প্রতিটি ঘরের জন্য একটি স্ট্রিং), যা বোঝা যায়। কেন এটি বাইরে কাজ করছে না তা নিশ্চিত তা সম্পর্কে আমি ভীত :(
জন হান্না


1

আপনি যদি ডকুমেন্টেশনেরTextReader দিকে নজর রাখেন , আপনি দুটি উত্তরাধিকার সূত্রে ক্লাস দেখতে পাবেন। এবং এর মধ্যে একটি হ'ল StringReaderযা মনে হয় ঠিক যা করতে চায় তেমন করে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.