有一个文本文件 内容是这样的:
……………………………………………….
Tue Jun 05 11:18:24 2007  LOG - Phase start.
Tue Jun 05 11:19:31 2007  LOG - Phase stopped by program.
Tue Jun 05 11:19:41 2007  LOG - Phase start.
Tue Jun 05 11:20:42 2007  LOG - Phase end 0:01:01
Tue Jun 05 11:21:11 2007  LOG - Phase start.
Tue Jun 05 11:21:56 2007  LOG - Phase end 0:00:44
Tue Jun 05 11:24:04 2007  LOG - Phase start.
Tue Jun 05 11:24:52 2007  LOG - Phase end 0:00:48
Tue Jun 05 11:25:37 2007  LOG - Phase start.
Tue Jun 05 11:27:28 2007  LOG - Phase end 0:01:51
Tue Jun 05 11:29:13 2007  LOG - Phase start.
Tue Jun 05 11:30:19 2007  LOG - Phase end 0:01:05
Tue Jun 05 11:33:50 2007  LOG - Phase start.
Tue Jun 05 11:34:52 2007  LOG - Phase end 0:01:01
Tue Jun 05 11:36:57 2007  LOG - Job <default>
Tue Jun 05 11:37:04 2007  LOG - Import : G:\PF\stencil\Stencil\2007.06\CI\CI001\002\CI001S0706002.txt
Tue Jun 05 11:37:22 2007  LOG - Phase start.
Tue Jun 05 12:19:12 2007  LOG - Phase end 0:41:50
Tue Jun 05 12:21:49 2007  LOG - Job <default>
………………………..
我将这个文件读到Memo中后,我想选取指定日期内的内容,比如:2007.6.1 到2007.7.1间的 内容,然后再作其它处理,请问要怎么做?,时间要能设定,有什么控件吗?

每一行前不是有日期吗,我想取指定时间段内的内容

哦。
这种日期格式,有点麻烦。

先读到TStringList中,把日期段的内容截取出来,然后1个1个判断是否在你要的日期段内

若是,则是你要的,若非,则不是你要的!

int n;
AnsiString a,b;
a=Memo1->Lines->Strings[2];
n=StrLen(a.c_str());
Edit1->Text=a;
Edit1->SelStart=5;
Edit1->SelLength=3;
b=Edit1->SelText;
if(b!="jun"&&b!="jul")
{
Memo1->Lines->Delete(2);
}
这个只是处理了月份的,你可以自己加下处理日期,年等

引用 4 楼 jxw1987628 的回复:
先读到TStringList中,把日期段的内容截取出来,然后1个1个判断是否在你要的日期段内

若是,则是你要的,若非,则不是你要的!


楼上的思路很对!在给你个参考的文件读取过程函数:

  String  value;
    TStringList  *t=new  TStringList();
    t-> LoadFromFile("监控记录.txt");
    for  (int  i=0;i <t->Count;i++)
    {
    value+=t-> Strings[i];
    Memo1->Text=value;
    }
    delete  t;

Tue Jun 05 11:18:24 2007

即使是这种类型的日期,也应该是有函数转换到TDateTime的。具体忘记了(多年不用了)……

可耻的匿了……