1

複数行のテキスト ファイルがあり、各行にタイム スタンプがあります。私はそれを特定の日付に分割し、通常の Regex.Matches を単語に対して実行したいと考えています。

だから私は呼ばれるDateTime変数を持っています

var date;

While(!reader.EndOfStream)
{

//need to split the document at certain date maybe Regex.Split and save it as newData

var matches=Regex.Matches(File.ReadAllText(newData), someWord);

}

正規表現またはその他の方法を使用して、特定の時点でドキュメントを分割する方法がわかりません。どうすれば分割できますか?

Portion of datafile is 

2013-03-03 19:08:27    Truck 2012 Toyota
2013-03-03 19:08:44    car 2008   Honda
2013-03-03 19:08:55    car 2011   Ford
2013-03-03 19:09:21    car 2005   Nissan
2013-03-03 19:08:29    car 2003   Cadillac
2013-03-03 19:08:32    car 2009   Ford
2013-03-03 19:08:52    car 2007   Suburban";
4

1 に答える 1

2

テキストファイルのデータに基づいて匿名オブジェクトのリストを作成し、その後、何を求めているかに応じてリストをクエリできます。

例:

   // create anonymous objects
   var myData = File.ReadAllLines("c:\\test.txt")
       .Select(line => line.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries))
       .Select(splits => new 
       {
           Date = DateTime.Parse(splits[0] + " " + splits[1]),
           Make = splits[2].Trim(),
           Year = int.Parse(splits[3].Trim()),
           Model = splits[4].Trim()
       });

   // find all "Ford" at my date
   var results = myData.Select(x => x.Date == myDate && x.Model == "Ford");

注:テキストファイルに一貫性がない可能性があるため、匿名オブジェクトの作成(int.TryParse、DateTime.TryParse)にエラー処理を追加することをお勧めします。

于 2013-03-11T04:07:27.413 に答える