-1

次の内容のテキスト ファイルがあります。

Warning 18.05.2012 16:27:45 www.site.com    0   None    BusyCount: 00:00:00.0000880
Warning 18.05.2012 16:27:45 www.site.com    0   None    GetBusyPlace: 00:00:00.7759916
Warning 18.05.2012 16:27:44 www.site.com    0   None    GetHallPlan: 00:00:00.0098537
Warning 18.05.2012 16:27:44 www.site.com    0   None    GetSeatPrice: 00:00:00.1462649
Warning 18.05.2012 16:27:40 www.site.com    0   None    BusyCount: 00:00:00.0000988
Warning 18.05.2012 16:27:40 www.site.com    0   None    GetBusyPlace: 00:00:00.7330764
Warning 18.05.2012 16:27:39 www.site.com    0   None    GetHallPlan: 00:00:00.0435432

私は3つの配列を持っています:

List<string> getSeatPrice = new List<string>();
List<string> getBusyCounts = new List<string>();
List<string> getHallPlan = new List<string>();

たとえば、このテキスト ファイルを解析して文字列から時間を取得GetBusyPlace: 00:00:00.7759916し、適切な配列に入れるにはどうすればよいですか?

ありがとう

4

2 に答える 2

2

ファイルの各行は、空白で区切られたトークンのセットのようです。この場合の最も簡単な方法は、 を使用String.Split()して、文字列内の位置によって必要なトークンを取得することです。

var getSeatPrice = new List<string>();
var getBusyCounts = new List<string>();
var getHallPlan = new List<string>();
foreach (var line in File.ReadAllLines("c:\\data\\myfile.txt")) {
    var tokens = line.Split('\t', ' ');
    var kind = tokens[6];
    var value = tokens[7];
    switch (kind) {
        case "GetSeatPrice:":
            getSeatPrice.Add(value);
        break;
        case "BusyCount:":
            getBusyCounts.Add(value);
        break;
        case "getHallPlan:":
            getHallPlan.Add(value);
        break;
    }
}
于 2012-05-18T10:50:52.920 に答える
1

固定幅フィールド形式のように見えます。

名前空間TextFieldParserに存在するクラスを使用することをお勧めします (への参照を追加するだけで準備完了です)。Microsoft.VisualBasic.FileIOMicrosoft.VisualBasic.dll

フィールドの厳密に型指定されたビューを取得するために、フィールドの幅と型を指定するようにセットアップできる .NET ライブラリです。

于 2012-05-18T10:48:47.960 に答える