C++Builder 程序员博客
1 Sep
有一个文本文件 内容是这样的:
……………………………………………….
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);
}
这个只是处理了月份的,你可以自己加下处理日期,年等
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的。具体忘记了(多年不用了)……
可耻的匿了……