मैं जानना चाहता हूं कि मैं कैसे जांच सकता हूं कि मेरी सीएसवी फ़ाइल के अंदर के सेल में अल्पविराम है, ताकि मैं इसे सफेद स्थान से बदल सकूं। नीचे मेरी सीएसवी फ़ाइल की छवि है: मेरी CSV फ़ाइल

मेरा सी # कोड यहां है:

if (System.IO.File.Exists(fName))
{
    System.IO.StreamReader objReader = new System.IO.StreamReader(fName);
    do
    {
        textLine = objReader.ReadLine();
        if (textLine != "")
        {
            splitLine = textLine.Split(',');
            if (splitLine[0] != "" || splitLine[1] != "")
            {
                dataGridView1.Rows.Add(splitLine);
            }
        }
    } while (objReader.Peek() != -1);
}
return true;

नीचे उपरोक्त कोड का परिणाम है। परिणाम

ब्लैक 32, लॉट 3 के बजाय, लॉट 3 ब्लैक 32 के बाद अल्पविराम के कारण अलग हो गया। मैं चाहता हूं कि वे ब्लैक 32, लॉट 3 के रूप में एक बनें।

0
mousepotato 5 जुलाई 2017, 06:45
मैं TextFieldParser वर्ग
 – 
John
5 जुलाई 2017, 06:50
उदाहरण के लिए, क्या आपने नोटपैड में CSV फ़ाइल पर एक नज़र डाली है? आपको क्या लगता है कि सेल के भीतर अल्पविराम को CSV फ़ाइल में कैसे निर्यात किया जाता है?
 – 
Jeroen Heier
5 जुलाई 2017, 06:53

2 जवाब

मुझे लगता है कि आपके मामले के लिए, एक्सेल में सीएसवी को निर्यात करते समय अपने कॉलम के आसपास quotation marks जोड़ना बेहतर है। फिर आप उन मेल खाने वाले कॉलम डेटा प्राप्त करने के लिए रेगेक्स का उपयोग कर सकते हैं।

http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/

1
grepLines 5 जुलाई 2017, 07:02
+1, यदि आपके डेटा में अल्पविराम हो सकते हैं, तो अपने मान उद्धृत करें। अन्यथा एक वैकल्पिक सीमांकक से अलग मूल्य प्रारूप पर विचार करें। (यानी पाइप "|")
 – 
Steve Py
5 जुलाई 2017, 08:11

जैसा कि यह सीएसवी फाइलों में अल्पविराम की उपस्थिति के कारण हुआ है, जिसे चिह्नित किया गया है, इसे उद्धरण चिह्नों में संलग्न किया जा सकता है, इसे इन उद्धरण चिह्न शर्तों को ट्रैक करके हल किया जा सकता है और उन्हें इस तरह मर्ज किया जा सकता है:

splitLine = textLine.Split(',');
List<string> tmp = new List<string>();
for (i = 0; i < splitLine.Length - 1; i++)
{
    if (splitLine[i] != "" && splitLine[i + 1] != "" && splitLine[i][0] == '"' && splitLine[i + 1][splitLine[i + 1].Length - 1] == '"')
    {
        tmp.Add(splitLine[i] + "," + splitLine[i + 1]);
        i++;
    }
    else
    tmp.Add(splitLine[i]);
}
splitLine = tmp.ToArray();
0
AbdelAziz AbdelLatef 21 सितंबर 2019, 15:08