C# Programming

C# में कुशल CSV फ़ाइल लेखन

Spread the love

अल्पविराम से पृथक्कृत मान (CSV) फ़ाइलें सारणीबद्ध डेटा संग्रहीत करने के लिए एक सर्वव्यापी प्रारूप हैं। इनकी सादगी उन्हें आसानी से सुलभ बनाती है, लेकिन इनको प्रोग्रामेटिक रूप से संभालने के लिए सावधानीपूर्वक विचार करने की आवश्यकता होती है। यह लेख C# में CSV फ़ाइलों में डेटा लिखने के दो अलग-अलग तरीकों का पता लगाता है: मज़बूत CsvHelper लाइब्रेरी का लाभ उठाना और अंतर्निहित File.WriteAllText() विधि का उपयोग करना। प्रत्येक दृष्टिकोण अद्वितीय लाभ प्रदान करता है, जिससे इष्टतम विकल्प डेटा की जटिलता और परियोजना की आवश्यकताओं पर निर्भर करता है।

विषयवस्तु की तालिका

CsvHelper का उपयोग करके CSV में लिखना

CsvHelper लाइब्रेरी C# में CSV फ़ाइलों को संभालने के लिए एक शक्तिशाली और लचीला समाधान प्रदान करती है। उद्धरण, बचाव और विभिन्न सीमांककों का इसका कुशल प्रबंधन इसे जटिल डेटासेट के लिए आदर्श बनाता है। अपने पसंदीदा पैकेज मैनेजर (जैसे, विजुअल स्टूडियो में NuGet पैकेज मैनेजर) के माध्यम से CsvHelper NuGet पैकेज स्थापित करके शुरुआत करें।


using CsvHelper;
using CsvHelper.Configuration;
using System;
using System.Globalization;
using System.IO;
using System.Collections.Generic;

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

public class CsvHelperExample
{
    public static void Main(string[] args)
    {
        List<Person> people = new List<Person>()
        {
            new Person { FirstName = "John", LastName = "Doe", Age = 30 },
            new Person { FirstName = "Jane", LastName = "Doe", Age = 25 },
            new Person { FirstName = "Peter", LastName = "Jones", Age = 40 }
        };

        string filePath = "output.csv";

        using (var writer = new StreamWriter(filePath))
        using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
        {
            csv.WriteRecords(people);
        }

        Console.WriteLine($"डेटा {filePath} में लिखा गया");
    }
}

यह उदाहरण Person ऑब्जेक्ट्स की एक सूची को CSV फ़ाइल में लिखने की सादगी को दिखाता है। CultureInfo.InvariantCulture सिस्टम सेटिंग्स की परवाह किए बिना सुसंगत स्वरूपण सुनिश्चित करता है। using कथन उचित संसाधन निपटान की गारंटी देते हैं।

WriteAllText() का उपयोग करके CSV में लिखना

छोटे, कम जटिल डेटासेट के लिए, File.WriteAllText() विधि एक सरल तरीका प्रदान करती है। हालाँकि, इस विधि के लिए अल्पविराम और उद्धरणों के मैन्युअल हैंडलिंग की आवश्यकता होती है, जो फ़ील्ड के भीतर इन वर्णों वाले डेटा के साथ बोझिल हो सकता है।


using System;
using System.IO;
using System.Text;

public class WriteAllTextExample
{
    public static void Main(string[] args)
    {
        string[,] data = {
            {"FirstName", "LastName", "Age"},
            {"John", "Doe", "30"},
            {"Jane", "Doe", "25"},
            {"Peter", "Jones", "40"}
        };

        StringBuilder csvBuilder = new StringBuilder();
        for (int i = 0; i < data.GetLength(0); i++)
        {
            for (int j = 0; j < data.GetLength(1); j++)
            {
                csvBuilder.Append(data[i, j]);
                if (j < data.GetLength(1) - 1)
                {
                    csvBuilder.Append(",");
                }
            }
            csvBuilder.AppendLine();
        }

        string filePath = "output_simple.csv";
        File.WriteAllText(filePath, csvBuilder.ToString());

        Console.WriteLine($"डेटा {filePath} में लिखा गया");
    }
}

यह कोड मैन्युअल रूप से CSV स्ट्रिंग बनाता है और इसे फ़ाइल में लिखता है। सरल मामलों के लिए कार्यात्मक होने के बावजूद, इसमें जटिल डेटा के लिए CsvHelper की मजबूती का अभाव है, जिसके लिए डेटा भ्रष्टाचार को रोकने के लिए विशेष वर्णों के व्यापक हैंडलिंग की आवश्यकता होती है।

सही विधि चुनना

इन विधियों के बीच चयन पूरी तरह से परियोजना की विशिष्ट आवश्यकताओं पर निर्भर करता है। फ़ील्ड के भीतर विशेष वर्णों की क्षमता वाले बड़े या जटिल डेटासेट के लिए, इसके मज़बूत त्रुटि हैंडलिंग और कुशल डेटा प्रबंधन के कारण CsvHelper की अत्यधिक अनुशंसा की जाती है। बहुत ही सरल डेटासेट के लिए, File.WriteAllText() पर्याप्त हो सकता है, लेकिन इसकी सीमाओं पर सावधानीपूर्वक विचार किया जाना चाहिए। उत्पादन वातावरण में IOException जैसे संभावित अपवादों का प्रबंधन करने के लिए हमेशा उपयुक्त त्रुटि हैंडलिंग (जैसे, try-catch ब्लॉक) को शामिल करें।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *