-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

我有三个数组:

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.FileIO(只需添加一个引用就Microsoft.VisualBasic.dll可以了)。

它是一个 .NET 库,您可以设置它来指定字段宽度和类型,以获得字段的强类型视图。

于 2012-05-18T10:48:47.960 回答