0

テキストファイルに次のようなコンテンツがあります

ここに画像の説明を入力してください

ここで、「:」が含まれるすべてのコンテンツを、「モード」->「許可」、「ステータス」->「開始」などで分割したいと思います。BSSIDはこれから除外されます。

誰かが私がコンテンツを分割する方法について私を助けることができます、私は「:」に基づいてコンテンツを分割しようとしましたが、ホストされたネットワーク設定--------------とホストされたネットワークステータスを取得します- --------スプリットでも。

4

3 に答える 3

2

あなたのファイルを見て、私は「:」で分割して行ごとに読みます(スペースはIPv6アドレスを分割しない簡単な方法です)。次に、文字列を含む行のみを受け入れます。何かのようなもの:

from line in textFileLines.Where(x=>x.Contains(": "))
select x.Split(": ")
于 2012-07-10T12:02:52.727 に答える
0

(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には2つの項目しかない場合、行には2つの列のみが追加されます。

于 2012-07-10T12:08:29.023 に答える
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);
}
于 2012-07-10T12:12:37.123 に答える