2012-09-12 19 views
6

मेरे पास एक फ़ंक्शन है जो एक सीमांकित फ़ाइल पढ़ता है।स्ट्रिंग। सी # टैब डिलीमीटर में स्प्लिट फ़ंक्शन

डिलीमीटर स्ट्रिंग तर्क द्वारा फ़ंक्शन को पास किया जाता है। समस्या यह है कि, जब मैं "\t" डिलीमीटर पास करता हूं, तो यह "\\t" जैसा समाप्त होता है और इसलिए, स्प्लिट इस अनुक्रम को खोजने में असमर्थ है।

मैं इस समस्या को कैसे हल कर सकता हूं? स्प्लिट ('\ t'), इस तरह से आप एक चार और नहीं एक स्ट्रिंग गुजर हो जाएगा की तरह इस के लिए

private void ReadFromFile(string filename, string delimiter) 
{ 

     StreamReader sr = new StreamReader(filename, Encoding.Default); 
     string[] firstLine = sr.ReadLine().Split(t.ToCharArray()); 

     ....... 
} 
+3

कृपया कुछ कोड दिखाएं! – Yahia

उत्तर

21

मुझे लगता है कि आप इस मामले में की तरह

string sep = @"\t"; 

कुछ प्रयोग कर रहे हैं सितम्बर \\t का आयोजन करेगा डबल वापस स्लेश

उपयोग string sep = "\t"

string content = "Hello\tWorld"; 
string sep = "\t"; 
string[] splitContent = content.Split(sep.ToCharArray()); 
-3

क्या आपने कोशिश की: पर्यावरण। न्यूलाइन?

+0

मुझे लगता है कि आपने किसी अन्य प्रश्न के बजाय यहां इस उत्तर को गलती से पोस्ट किया होगा, क्योंकि ऐसा लगता है कि सवाल पूछने के साथ कुछ भी नहीं है। – shieldgenerator7

0

आप के रूप में "\ t" में पार कर लेते हैं delimiter कुछ भी इसे "\ t" में बदल जाएगा। कुछ और आपके टैब से बचने से दोगुना है।

Blah("\t"); 
    private static void Blah(string s) 
    { 
     var chars = s.ToCharArray(); 
     Debug.Assert(chars.Length == 1); 

     var parts = "blah\tblah\thello".Split(chars);    
     Debug.Assert(parts.Length == 3); 
    } 
0

अपने विभाजन इस तरह से पर एक रिक्त स्थान द्वारा टैब (\ t) को बदल रहा है करने के लिए एक और तरीका है:

  if(linea.ToLower().Contains(@"\t")) 
       linea = linea.Replace(@"\t", " "); 
      retVal = linea.Trim().Split(' ')[1]; 

इस कोड मेरे लिए काम करता है।

1

पास पैरामीटर मान \ t (टैब) की दशमलव संख्या के रूप में पास करें और इसे परिवर्तित करें।

int delimeter =9; 

// 9 ==> \t 
// 10 ==> \n 
// 13 ==> \r 

char _delimeter = Convert.ToChar(delimeter); 

string[] rowData = fileContent.Split(_delimeter); 

हैप्पी प्रोग्रामिंग।

संबंधित मुद्दे