क्या कुछ उदार लाइसेंस के तहत सीएसवी पार्सर का अच्छा और मुफ्त कार्यान्वयन उपलब्ध है? जावा के लिए SuperCSV के कुछ समकक्ष , शायद एक बंदरगाह?
क्या कुछ उदार लाइसेंस के तहत सीएसवी पार्सर का अच्छा और मुफ्त कार्यान्वयन उपलब्ध है? जावा के लिए SuperCSV के कुछ समकक्ष , शायद एक बंदरगाह?
जवाबों:
CodeProject पर एक अच्छा कार्यान्वयन है :
पृथ्वी की संख्या को और अधिक नीचे देने के लिए, एक 45 एमबी सीएसवी फ़ाइल जिसमें 145 फ़ील्ड और 50,000 रिकॉर्ड हैं, पाठक लगभग 30 एमबी / सेकंड की प्रक्रिया कर रहा था। तो सब में, यह 1.5 सेकंड लिया! मशीन चश्मा P4 3.0 GHz, 1024 MB थे।
Microsoft.VisualBasic.FileIO.TextFieldParse
और इसने चाल चली।
आप डेटाटेबल के लिए एक सीएसवी फ़ाइल लोड कर सकते हैं।
नमूना कोड -
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 के लिए काम नहीं करता है।
filehelpers की कोशिश करो आश्चर्यजनक रूप से अच्छी तरह से काम करते हैं । मैं हर दिन 100 एमबी फ़ाइल पार्स करने के लिए इसका उपयोग कर रहा हूं।
क्या आपने FileHelpers लाइब्रेरी की कोशिश की है? यह मुफ़्त है, खुला स्रोत है और इसका उपयोग CSV फ़ाइलों को पार्स करने के लिए किया जा सकता है।
मैंने CSV पार्सर का उपयोग करना शुरू कर दिया है जो कि CommonLibrary.NET का हिस्सा है ।
यह .NET 3.5 का उपयोग करता है, इसमें एक आसान एपीआई और सुविधाजनक अधिभार / विधियाँ और पुनरावृत्तियों के लिए लामडा है।
मेरे पास इसके लिए ऊपर की तरह कोई भी बेंचमार्क नहीं है, लेकिन इसके बारे में अच्छी बात यह है कि यह जावा कॉमन्स के समान लाइब्रेरी का सिर्फ एक घटक है। इसलिए मुझे अन्य चीजों के बीच एक कमांड-लाइन पार्सर, रिपोजिटरी कार्यान्वयन भी मिलता है।