📄 lwjf150.c
字号:
#include <sys/termio.h>
#include <sys/locking.h>
#define L_SIZE 128
#include <time.h>
#include <stdio.h>
#include <math.h>
#include <ctype.h>
#include <string.h>
/****************************************************************/
main(argc,argv)
int argc;
char *argv[];
{char dates[10];
if (argc!=2)
getdates(dates);
day(dates);
night(dates);
}
/****************************************************************/
getdates(char *dates)
{printf("Please input scan date<YYYMMDD>:");
gets(dates);
}
/****************************************************************/
day(char *dates)
{char portname[6],rawbuff[L_SIZE],data[80][5][10];
FILE *fp,*fop;
char fname[50],hour[6];
long time(),lg;
struct tm *localtime(),*tim;
int yy,mm,dd,i,t;
/*
lg=time(&lg);
tim=localtime(&lg);
sprintf(fname,"/u/omc/data/tra/21b_%d%d%d%d%d",tim->tm_year,(tim->tm_mon+1)/10,(tim->tm_mon+1)%10,tim->tm_mday/10,tim->tm_mday%10);
*/
sprintf(fname,"/u/omc/data/tra/21b_%s",dates);
printf("%s\n",fname);
if((fp=fopen(fname,"r"))==NULL)
{printf("open rawfile error ! \n");
fclose(fp);
return(-1);
}
i=0;
while(!feof(fp))
{
fgets(rawbuff,L_SIZE,fp);
if(sub_str(rawbuff,"AREA")<=0)
continue;
else
if(sub_str(rawbuff,"10:00")<=0)
continue;
else
{while(sub_str(rawbuff,"OUTGOING")<=0)
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
return(0);
if(sub_str(rawbuff,"OUTGOING")>0)
break;
}
} /* while have found 09:00-10:00 outgoing data segment*/
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
return(0);
while(sub_str(rawbuff,"CALLS")<=0)
{
printf("raw:%s",rawbuff);
nword(2,rawbuff,data[i][0]);
nword(3,rawbuff,data[i][1]);
nword(4,rawbuff,data[i][2]);
nword(9,rawbuff,data[i][3]);
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
break;
nword(4,rawbuff,data[i][4]);
i++;
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
break;
} /* while get data to arrage */
if(sub_str(rawbuff,"CALLS")>0)
{
/*
sprintf(fname,"/u/omc/data/tra/lwjday%d%d%d%d",(tim->tm_mon+1)/10,(tim->tm_mon+1)%10,tim->tm_mday/10,tim->tm_mday%10);
*/
sprintf(fname,"/u/omc/data/tra/ld%s",dates);
printf("%s\n",fname);
if((fop=fopen(fname,"w"))==NULL)
{printf("open rawfile error ! \n");
fclose(fp);
return(-1);
}
for(t=0;t<i;t++)
fprintf(fop,"%s %s %s %s %s\n",data[t][0],data[t][1],data[t][2],data[t][4],data[t][3]);
fclose(fop);
} /* write to datafile */
fclose(fp);
return(0);
}
/****************************************************************/
night(char *dates)
{char portname[6],rawbuff[L_SIZE],data[80][5][10];
FILE *fp,*fop;
char fname[50],hour[6];
long time(),lg;
struct tm *localtime(),*tim;
int yy,mm,dd,i,t;
/*
lg=time(&lg);
tim=localtime(&lg);
sprintf(fname,"/u/omc/data/tra/21b_%d%d%d%d%d",tim->tm_year,(tim->tm_mon+1)/10,(tim->tm_mon+1)%10,tim->tm_mday/10,tim->tm_mday%10);
*/
sprintf(fname,"/u/omc/data/tra/21b_%s",dates);
printf("%s\n",fname);
if((fp=fopen(fname,"r"))==NULL)
{printf("open rawfile error ! \n");
fclose(fp);
return(-1);
}
i=0;
while(!feof(fp))
{
fgets(rawbuff,L_SIZE,fp);
if(sub_str(rawbuff,"AREA")<=0)
continue;
else
if(sub_str(rawbuff,"22:00")<=0)
continue;
else
{while(sub_str(rawbuff,"OUTGOING")<=0)
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
return(0);
if(sub_str(rawbuff,"OUTGOING")>0)
break;
}
} /* while have found 09:00-10:00 outgoing data segment*/
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
return(0);
while(sub_str(rawbuff,"CALLS")<=0)
{
printf("raw:%s",rawbuff);
nword(2,rawbuff,data[i][0]);
nword(3,rawbuff,data[i][1]);
nword(4,rawbuff,data[i][2]);
nword(9,rawbuff,data[i][3]);
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
break;
nword(4,rawbuff,data[i][4]);
i++;
if(!feof(fp))
fgets(rawbuff,L_SIZE,fp);
else
break;
} /* while get data to arrage */
if(sub_str(rawbuff,"CALLS")>0)
{
/*
sprintf(fname,"/u/omc/data/tra/lwjnig%d%d%d%d",(tim->tm_mon+1)/10,(tim->tm_mon+1)%10,tim->tm_mday/10,tim->tm_mday%10);
*/
sprintf(fname,"/u/omc/data/tra/ln%s",dates);
printf("%s\n",fname);
if((fop=fopen(fname,"w"))==NULL)
{printf("open rawfile error ! \n");
fclose(fp);
return(-1);
}
for(t=0;t<i;t++)
fprintf(fop,"%s %s %s %s %s\n",data[t][0],data[t][1],data[t][2],data[t][4],data[t][3]);
fclose(fop);
} /* write to datafile */
fclose(fp);
return(0);
}
/************************************************/
sub_str(str1,str2)
char *str1,*str2;
{
int l1,l2,i;
l1=strlen(str1);
l2=strlen(str2);
if(l1<l2) return(-1);
for(i=0;i<l1;i++) {
if(l1-i<l2) return(-1);
if(!strncmp(str1+i,str2,l2)) return(i);
}
}
/*******************************************/
char *word(lp,stri)
char *lp,*stri;
{
while(*lp && (*lp == ' ' || *lp=='-' || *lp=='=' || *lp == '\n' || *lp == '\t' || *lp == ':' || *lp == '\r' )) lp++;
while(*lp && *lp !=' ' && *lp!='-' && *lp!='=' && *lp !=':' && *lp !='\t' && *lp != '\n' && *lp != '\r') *stri++ = *lp++;
*stri= '\0';
if(*lp) return(lp);
else return(0);
}
/*******************************************/
nword(number, bufa, stra)
int number;
char *bufa, *stra;
{
for(;number-- > 0;) {
bufa=word(bufa, stra);
if(bufa==(char *)0) return(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -