2012-07-10 129 views
0

我在文本文件中有內容,如下面拆分文本

enter image description here

現在我想拆都具有內容「:」在像模式 - >允許,狀態 - >開始等BSSID是免除這一點。

任何人都可以幫助我關於如何拆分內容,我嘗試拆分基於「:」的內容,但我得到託管網絡設置--------------和託管網絡狀態----------也在分裂。

+1

必須有像周圍SO一對夫婦一千相同的問題 – Alex 2012-07-10 12:06:36

回答

0

我與@ LC去的答案,但如果你需要更多的自定義邏輯的東西,試試這個:

var keyValue = new Dictionary<string, string>(); 
foreach (var lineItem in System.IO.File.ReadAllLines(@"C:\Users\Kane\Desktop\yourFile.txt").Where(x => x.Contains(": "))) 
{ 
    var splitPosition = lineItem.IndexOf(": ", System.StringComparison.OrdinalIgnoreCase); 
    var key = lineItem.Substring(0, splitPosition); 
    var value = lineItem.Substring(splitPosition + 1); 

    // add in functions for checking null 
    // add in functions for trimming 
    // add in special cases for 
    keyValue.Add(key, value); 
} 
2

看着你的文件,我會一行一行閱讀,拆分「:」(空間是不拆分你的IPv6地址的簡單方法)。然後只接受包含該字符串的行。喜歡的東西:

from line in textFileLines.Where(x=>x.Contains(": ")) 
select x.Split(": ") 
0

如果你有,你有這樣的固定lenth列(X,Y)的話,我認爲這是閱讀的文本文件,更合適的方式

public DataTable GetDataTableFromTextFile(string filepath) 
    { 
           string line; 
           DataTable dt = new DataTable();       
           using (TextReader tr = File.OpenText(filepath)) 
           { 
            while ((line = tr.ReadLine()) != null) 
            { 
             string[] items = line.Split('\t',":",";","="); 
             if (dt.Columns.Count == 0) 
             { 
              dt.Columns.Add(new DataColumn("FirstColumn", typeof(string))); 
              dt.Columns.Add(new DataColumn("SecondColumn", typeof(string))); 
              dt.Columns.Add(new DataColumn("ThridColumn", typeof(string))); 

             } 

             if (items.Length > 0 && !string.IsNullOrWhiteSpace(items[0].ToString())) 
             { 
              dt.Rows.Add(items);          
             } 
            } 
           } 
    return dt; 

} 

希望充分,這將是對你有幫助。

您可以根據需要添加列。並且dt.rows.add(item)將僅添加行中的列,例如item只有兩個項目,那麼該行將僅添加兩列。