📄 bird.cpp
字号:
// bird.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include <windows.h>
char Months[13][4]={
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec"
};
struct TS{
char week[4];
char month[4];
char day[3];
char hms[9];
char year[5];
};
TS ts;
int MonthToInt(char Mon[])
{
for(int i=0;i<12;i++)
{
if(strncmp(Mon,Months[i],3)==0) return i+1;
}
return 0;
}
//From - Thu Nov 01 21:53:03 2007
//0123456789012345678901234567890
void ToStandTime(char *sTime)
{
int st;
for(st=0;st<3;st++) ts.week[st]=sTime[st+7]; ts.week[st]='\0';
for(st=0;st<3;st++) ts.month[st]=sTime[st+11]; ts.month[st]='\0';
for(st=0;st<2;st++) ts.day[st]=sTime[st+15]; ts.day[st]='\0';
for(st=0;st<8;st++) ts.hms[st]=sTime[st+18]; ts.hms[st]='\0';
for(st=0;st<4;st++) ts.year[st]=sTime[st+27]; ts.year[st]='\0';
}
void Usage()
{
printf("Usage: bird.exe OpenFile SavedFile start end\n");
printf("Example:bird.exe Inbox tmp.log 20070101 20071212\n");
}
int main(int argc, char* argv[])
{
//a.exe Inbox log.log stime etime;
if(argc!=5){
Usage();
return 0;
}
char StandTime[10]="0";
char *StartTime;
char *EndTime;
char *OpenFile;
char *SavedFile;
OpenFile = argv[1];
SavedFile = argv[2];
StartTime = argv[3];
EndTime = argv[4];
FILE *fp,*fw;
if((fp = fopen(OpenFile,"r"))==NULL)
{
printf("File no exsit.");
return 0;
}
if((fw = fopen(SavedFile,"w"))==NULL)
{
printf("Create file failed.");
return 0;
}
char Mark[]="From - ";
char SourceLine[200]="0";
char *Marked; //From -
int WriteIt =0; //是否写进文件
int Count=0;
HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
fgets(SourceLine,200,fp);
Marked=strstr(SourceLine,Mark);
while(!feof(fp))
{
if(Marked>0)
{
ToStandTime(SourceLine);
sprintf(StandTime,"%s%d%s",ts.year,MonthToInt(ts.month),ts.day);
if((!(strncmp(StartTime,StandTime,8)>0))&&(!(strncmp(EndTime,StandTime,8)<0)))
{
WriteIt = 1;
Count ++;
CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo;
GetConsoleScreenBufferInfo(hConsole,&ConsoleScreenBufferInfo);
COORD pos = {0, 0};
ConsoleScreenBufferInfo.dwCursorPosition.X = 0;
SetConsoleCursorPosition ( hConsole, ConsoleScreenBufferInfo.dwCursorPosition );
// SetConsoleCursorPosition ( hConsole, pos);
printf("Getting... %d ", Count);
fflush(stdout);
Sleep(5);
}
else
WriteIt = 0;
}
if(WriteIt) {fprintf(fw,"%s",SourceLine); fflush(fw); }
fgets(SourceLine,200,fp);
Marked=strstr(SourceLine,Mark);
}
fcloseall();
printf("\nok, total:%d",Count);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -