C# Programming

C# में कुशल CSV फ़ाइल रीडिंग और सरणी संग्रहण

Spread the love

अल्पविराम से पृथक्कृत मान (CSV) फ़ाइलें सारणीबद्ध डेटा संग्रहीत करने के लिए एक सर्वव्यापी प्रारूप हैं। यह लेख CSV फ़ाइलों को पढ़ने और उनकी सामग्री को सरणियों में संग्रहीत करने के लिए दो कुशल C# विधियाँ प्रस्तुत करता है। हम StreamReader कक्षा का उपयोग करके एक मैनुअल दृष्टिकोण और Microsoft.VisualBasic.FileIO लाइब्रेरी से TextFieldParser कक्षा का उपयोग करके एक अधिक सुव्यवस्थित समाधान का पता लगाएंगे।

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

StreamReader के साथ CSV फ़ाइलें पढ़ना

StreamReader दृष्टिकोण पढ़ने की प्रक्रिया पर बारीक नियंत्रण प्रदान करता है, जिससे विविध CSV प्रारूपों के लिए अनुकूलन सक्षम होता है। हालाँकि, इसे सीमांककों और त्रुटि स्थितियों के अधिक मैनुअल संचालन की आवश्यकता होती है।


using System;
using System.IO;

public class CsvReaderStreamReader
{
    public static string[][] ReadCsv(string filePath)
    {
        string[][] data = new string[0][]; // एक खाली सरणी के रूप में आरंभ करें
        try
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    string[] values = line.Split(',');
                    Array.Resize(ref data, data.Length + 1);
                    data[data.Length - 1] = values;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"CSV फ़ाइल पढ़ते समय त्रुटि: {ex.Message}");
        }
        return data;
    }

    public static void Main(string[] args)
    {
        string filePath = "data.csv"; 
        string[][] csvData = ReadCsv(filePath);

        if (csvData != null)
        {
            foreach (string[] row in csvData)
            {
                Console.WriteLine(string.Join(" ", row));
            }
        }
    }
}

यह बेहतर कोड गतिशील रूप से सरणी का आकार बदलता है, मनमाने प्रारंभिक आकार सीमा से बचा जाता है। यह स्पष्ट त्रुटि संदेशों के लिए स्ट्रिंग इंटरपोलेशन और संक्षिप्त आउटपुट के लिए string.Join का भी उपयोग करता है।

TextFieldParser के साथ CSV फ़ाइलें पढ़ना

TextFieldParser CSV पार्सिंग को सरल करता है, खासकर उद्धृत फ़ील्ड या कस्टम सीमांककों वाली जटिल फ़ाइलों के लिए। यह इन पेचीदगियों को स्वचालित रूप से संभालता है।


using Microsoft.VisualBasic.FileIO;
using System;

public class CsvReaderTextFieldParser
{
    public static string[][] ReadCsv(string filePath)
    {
        string[][] data = new string[0][];
        try
        {
            using (TextFieldParser parser = new TextFieldParser(filePath))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                while (!parser.EndOfData)
                {
                    string[] fields = parser.ReadFields();
                    Array.Resize(ref data, data.Length + 1);
                    data[data.Length - 1] = fields;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"CSV फ़ाइल पढ़ते समय त्रुटि: {ex.Message}");
        }
        return data;
    }

    public static void Main(string[] args)
    {
        string filePath = "data.csv";
        string[][] csvData = ReadCsv(filePath);

        if (csvData != null)
        {
            foreach (string[] row in csvData)
            {
                Console.WriteLine(string.Join(" ", row));
            }
        }
    }
}

यह कोड TextFieldParser का उपयोग करके CSV पार्सिंग को कुशलतापूर्वक संभालता है। अपनी परियोजना में Microsoft.VisualBasic असेंबली का संदर्भ जोड़ना याद रखें।

विधि तुलना

दोनों विधियाँ एक ही परिणाम प्राप्त करती हैं, लेकिन TextFieldParser को आम तौर पर इसकी मजबूती और उपयोग में आसानी के लिए पसंद किया जाता है, खासकर जटिल CSV फ़ाइलों के साथ। StreamReader विशेष परिदृश्यों के लिए अधिक नियंत्रण प्रदान करता है, लेकिन सावधानीपूर्वक त्रुटि हैंडलिंग और सीमांकक प्रबंधन की आवश्यकता होती है।

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

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