⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lwjf150.c

📁 富士通F150程控交换机MA接口通讯源程序
💻 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 + -