সিএসভি পার্সার / সি # রডার? [বন্ধ]


89

কিছু উদার লাইসেন্সের অধীনে সিএসভি পার্সারের একটি ভাল এবং নিখরচায় বাস্তবায়ন কি পাওয়া যায়? জাভা, সম্ভবত একটি বন্দর জন্য সুপারসিএসভি কিছু অংশ ?



4
মাইক্রোসফ্ট.ভিউজুয়ালবাসিক.ফিলিও.ওেক্সটফিল্ড পার্সার ব্যবহার করে;


4
গঠনমূলক নয়? এসও অ্যাডমিনরা তাই পাগল। এটি একটি খুব সহায়ক প্রশ্ন।
রিচার্ড

উত্তর:


70

24
ফাইলহেল্পারদের (কমপক্ষে সিএসভির জন্য) প্রয়োজন যে আপনি "এমন একটি শ্রেণি নির্ধারণ করুন যা উত্স (ফাইল) রেকর্ডে মানচিত্র করে" "," আপনাকে অবশ্যই একটি রেকর্ড ম্যাপিং ক্লাস ঘোষণা করতে হবে "ইত্যাদি এবং এটি এত উত্তপ্ত নয়। আমি কয়টি কলামের প্রত্যাশা করব তা আগেই জেনে না করে CSV কে ডেটাটেবলে রূপান্তর করতে চাই।
কনরাড মোরাউস্কি

53

কোডপ্রজেক্টে একটি দুর্দান্ত বাস্তবায়ন রয়েছে :

145 ক্ষেত্র এবং 50,000 রেকর্ডযুক্ত 45 এমবি সিএসভি ফাইল সহ পৃথিবীর সংখ্যাগুলিকে আরও নামিয়ে দেওয়ার জন্য, পাঠক প্রায় 30 এমবি / সেকেন্ড প্রক্রিয়া করছে। সব মিলিয়ে, এটি 1.5 সেকেন্ড সময় নিয়েছে! মেশিনের স্পেসগুলি পি 4 3.0 গিগাহার্টজ, 1024 এমবি ছিল।


(আমার +1 ফিরিয়ে নিচ্ছি): আমি একটি 53 এমবি ফাইলটিতে লুমার ওয়ার্কগুলি দ্রুত সিএসভি পাঠককে ভেঙে ফেলেছি। দেখে মনে হচ্ছে 43,000 সারি পরে লাইন ক্যাশে ব্যর্থ হয়েছে এবং বাফারটিকে স্ক্র্যাম্বল করেছে। চেষ্টা করেছিলেন Microsoft.VisualBasic.FileIO.TextFieldParseএবং এটি কৌশলটি করেছিলেন।
কোডিং চলে গেছে

11

আপনি ডেটাবেলে কোনও সিএসভি ফাইল লোড করতে পারেন।

কোডের উদাহরণ -

static DataTable CsvToDataTable(string strFileName)
{
    DataTable dataTable = new DataTable("DataTable Name");

    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
    {
        conn.Open();
        string strQuery = "SELECT * FROM [" + strFileName + "]";
        OleDbDataAdapter adapter = 
            new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
        adapter.Fill(dataTable);
    }
    return dataTable;
}

নিশ্চিত হয়ে নিন যে আপনি আপনার প্রকল্পটি x86 প্রসেসরে সংকলন করেছেন। এটি x64 এর জন্য কাজ করে না।


4
আমি বিল্ট-ইন ওডিবিসি বা ওএইলডিবি লাইব্রেরিগুলির সাথে থাকতে চেয়ে এটি আমার পক্ষে বেশ ভাল কাজ করেছে। বিটিডব্লিউ
মেরিংরোস

4
এটি 64 বিট নিয়ে কাজ করছে না, হায়।
DenNukem


7

চেষ্টা filehelpers হয় amazingly ভাল কাজ। আমি এটি প্রতিদিন 100 এমবি ফাইল পার্স করতে ব্যবহার করছি।


4

আপনি ফাইলহেলার্স লাইব্রেরি চেষ্টা করেছেন? এটি নিখরচায়, মুক্ত উত্স এবং CSV ফাইলগুলি পার্স করার জন্য ব্যবহার করা যেতে পারে।


3

আমি যে CSV পার্সার তারই একটি অংশ ব্যবহার শুরু করেছি CommonLibrary.NET

এটি .NET 3.5 ব্যবহার করে, একটি সহজ এপিআই, এবং পুনরাবৃত্তির জন্য সুবিধাজনক ওভারলোড / পদ্ধতি এবং লামডা রয়েছে।

উপরের মতো এটির জন্য আমার কাছে কোনও মানদণ্ড নেই, তবে এটির সম্পর্কে সুন্দর বিষয়টি এটি জাভা কমন্সের মতো একটি লাইব্রেরির মাত্র একটি উপাদান। সুতরাং আমি কমান্ড-লাইন পার্সার, অন্যান্য জিনিসের মধ্যে সংগ্রহস্থল প্রয়োগও পাই।

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