100分求写一程序,达人进~急急
本地一个文件夹D:\AAA,时时有文本文件生成,要作一个文件到达本地时间的监控界面,要求把文件到打本地的时间写入表格对应位置,界面大体如下:
00时 01时 02时 03时 ... 23时
北京 00:12
上海
深圳 00:31
...
文件名的格式是固定的:A_北京_20070821.txt ; A_上海_20070821.txt
我希望程序这样实现:定时遍历一下这个文件夹,通过文件名里的城市名(如北京)确定行坐标,通过文件到达本地的小时(如00时)定列坐标,然后将文件到达的时间(如00:12)写入相应的位置.并且将分钟数超过30分钟的用红色表示.
我需要一个完整的程序,最好能亲自编译通过~小弟在此深深的谢过了!
我邮箱yy83726@163.com,能给我发打包程序更好了.
[解决办法]
冲话费就免了 谁都有个难处 实在写不了大家都帮忙看看算了
把要求说清楚 看大伙谁有空的时候把程序写了
那个文件到达的时间是哪儿来的??
比如你例子中的0:12和0:31从哪儿抓来的
还有如果超过24小时 该怎么显示
[解决办法]
给你写了一个,剩下的自己琢磨去吧
http://www.ultrasofts.cn/uploadimg/detectfile.rar
基本思路:
用一个定时器,定时监测文件夹。解析文件名
然后取得文件的时间属性,分析之
然后把文件放到一个备份文件夹
检测主函数:
void TForm1::checkfile()
{
//
TStringList *FileListResult=new TStringList;
FileDateTime_T *pFileDateTime = new FileDateTime_T;
TStringList *plist=new TStringList;
plist->Delimiter = '_';
FindFilesInDirectory(Edit1->Text,false,"*.*",FileListResult,0);
bool nameexist=false;
int rowindex=0;
for(int i=0;i<FileListResult->Count;i++)
{
//先解析文件名
plist->DelimitedText = FileListResult->Strings[i];
rowindex = getindex(plist->Strings[1]);
//得到文件的创建时间,修改时间以及最近的访问时间,在变量 pFileDateTime里
GetFileDateTime(FileListResult->Strings[i],pFileDateTime);
StringGrid1->Rows[rowindex]->Strings[pFileDateTime->CreateDateTime.wHour+1] = IntToStr(pFileDateTime->CreateDateTime.wHour)+":"+IntToStr(pFileDateTime->CreateDateTime.wMinute);
//以下是得到了文件的时间处理部分
//文件的生成的小时为pFileDateTime->CreateDateTime.wHour
//文件的生成的分钟为pFileDateTime->CreateDateTime.wMinute
//处理完了就把文件移到备份文件夹
MoveFileA(FileListResult->Strings[i].c_str(),(Edit2->Text+ExtractFileName(FileListResult->Strings[i])).c_str());
}
delete FileListResult;
delete pFileDateTime;
delete plist;
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//为了保证定时器不会重叠,先把定时器false
Timer1->Enabled = false;
checkfile();
Timer1->Enabled = true; //重新开放
}
其他的自己去下载压缩包看源代码吧