我在文本文件中有內容,如下面拆分文本
現在我想拆都具有內容「:」在像模式 - >允許,狀態 - >開始等BSSID是免除這一點。
任何人都可以幫助我關於如何拆分內容,我嘗試拆分基於「:」的內容,但我得到託管網絡設置--------------和託管網絡狀態----------也在分裂。
我在文本文件中有內容,如下面拆分文本
現在我想拆都具有內容「:」在像模式 - >允許,狀態 - >開始等BSSID是免除這一點。
任何人都可以幫助我關於如何拆分內容,我嘗試拆分基於「:」的內容,但我得到託管網絡設置--------------和託管網絡狀態----------也在分裂。
我與@ 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);
}
看着你的文件,我會一行一行閱讀,拆分「:」(空間是不拆分你的IPv6地址的簡單方法)。然後只接受包含該字符串的行。喜歡的東西:
from line in textFileLines.Where(x=>x.Contains(": "))
select x.Split(": ")
如果你有,你有這樣的固定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只有兩個項目,那麼該行將僅添加兩列。
必須有像周圍SO一對夫婦一千相同的問題 – Alex 2012-07-10 12:06:36