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

📄 as49ccov.cpp

📁 西门子交换机话单处理
💻 CPP
字号:
//FORMAT CONVETER PROGRAME 			格式转换程序
//conveter text file to dbf file    转换文本文件到数据库文件
//source file  :      HM.TXT
//relation file:_SQREDB1.HED
//output file  :SQRESPES.DBF
#define  SOURFILE		""
#define  DTBFFILE		""
#define  SPACE          "        "
#define  ESC			0x1b
#define  FIELDNUM		9          //总字段数
#define  FIELDLEN		8
#define  HeadMark   "HSNB"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
void 	 _szx_disp(void);

main(char argc,char *argv[])
{
	FILE *fi_obj,*fi_hed,*fo_dbf;
	int  i,m,n,counter;
	char sourbuff[200];
	char parm1[8][10],JuTou[10],yyh[10];
	char output[8][10];
	char filename1[80]=SOURFILE;
	char filename3[80]=DTBFFILE;
	char *ptr_str;
	union lcnt{
		long lgcnt;
		char chcnt[4];
	}count;

	//Check Command Line Parameter
	if(argc<3){
	_szx_disp();
	printf("\nPress ESC key exit.\n");
	do{}while(getch()!=ESC);
	return (-300);
	}
	else	{
	strcpy(filename1,argv[1]);
	strcpy(filename3,argv[2]);
	}

	//Error Handler
	if ((fi_obj=fopen(filename1,"rb"))==0){
	_szx_disp();
	printf("\nPress ESC key exit.\n");
	do{}while(getch()!=ESC);
	return(-301);
	}

	//Error Handler
	if ((fo_dbf=fopen(filename3,"wb+"))==0){
	_szx_disp();
	printf("\nPress ESC key exit.\n");
	do{}while(getch()!=ESC);
	return(-303);
	}

	fseek(fi_obj,0,SEEK_SET);		fseek(fo_dbf,0,SEEK_SET);

	for(m=0;m<200;m++)sourbuff[m]=NULL;
	clrscr();
	_szx_disp();
	counter=0;
	i=0;      //Line counter of source file               //I 字段计数器

	//Main Loop
	while(!(feof(fi_obj)))
	{
		//Main Buffer "sourbuff"
		fgets(sourbuff,200,fi_obj);
		i++;
		sscanf(sourbuff,"%s%s%s%s%s%s%s%s",parm1[0],parm1[1],parm1[2],parm1[3],
					 parm1[4],parm1[5],parm1[6],parm1[7]);
		while (strcmp(parm1[0],HeadMark))
		{
			fgets(sourbuff,200,fi_obj); //Search Record Head
			if(feof(fi_obj))break;
			i++;
			sscanf(sourbuff,"%s%s%s%s%s%s%s%s",parm1[0],parm1[1],parm1[2],parm1[3],
						 parm1[4],parm1[5],parm1[6],parm1[7]);
			if(feof(fi_obj))break;     //if arrived eof exit

		}

		fgets(sourbuff,200,fi_obj); //get a Record to buffer
		if(feof(fi_obj))break;
		i++;
		//distribut buffer to varible
		sscanf(sourbuff,"%s%s%s%s%s%s%s%s",parm1[0],parm1[1],parm1[2],parm1[3],
					 parm1[4],parm1[5],parm1[6],parm1[7]);

		if(!strcmp(parm1[0],"WO"))  //skip title
		{
			fgets(sourbuff,200,fi_obj); //get a Record to buffer
			m=strlen(sourbuff);
			if(feof(fi_obj))break;
			i++;
			//distribut buffer to variable
			sscanf(sourbuff,"%s%s%s%s%s%s%s%s",parm1[0],parm1[1],parm1[2],parm1[3],
						 parm1[4],parm1[5],parm1[6],parm1[7]);
		}
		//Now variable Ready
		//Record Fromat Analysis

		//Output Record
		switch (strlen(parm1[0])){
			//The Recoder Have a HeadNumber (First varable Length = 5)
			case 5:strcpy(JuTou,parm1[0]); //Get New Jutou
						 strcpy(yyh,JuTou);
						 strcat(yyh,parm1[1]);   //Make Subscriber Number
						 n=3;
						 while(strlen(parm1[n])!=8)
						 {
							 n++;
							 if(n>4)
							 {
								 printf("\nError!!  At Line %i",i);
								 printf("\n%s",sourbuff);
								 exit(1);
							 }

						 }
						 strcpy(output[0],parm1[n]);  strcpy(output[1],parm1[n+1]);
						 strcpy(output[2],parm1[n+2]);strcpy(output[3],parm1[n+3]);
						 for(n=0;n<4;n++)
						 {
							 if(strlen(output[n])!=8)
							 {
								 printf("\nError!!  At Line %i",i);
								 printf("\n%s",sourbuff);
								 exit(1);
							 }
						 }
						 fprintf(fo_dbf,"%s %s %s %s %s\r\n",yyh,output[0],output[1],
										 output[2],output[3]);
						 counter++;
						 //clrscr();
						 gotoxy(40,20);
						 printf("Record:%i",counter);
						 break;
			//The Recoder Haven't HeadNumber  ( First Varable Lengther = 2)
			case 2:strcpy(yyh,JuTou);
						 strcat(yyh,parm1[0]);     //Make Subcriber Number
						 n=2;
						 while(strlen(parm1[n])!=8)
						 {
							 n++;
							 if(n>3)
							 {
								 printf("\nError!!  At Line %i",i);
								 printf("\n%s",sourbuff);
								 exit(1);
							 }

						 }
						 //Read Meter
						 strcpy(output[0],parm1[n]);  strcpy(output[1],parm1[n+1]);
						 strcpy(output[2],parm1[n+2]);strcpy(output[3],parm1[n+3]);
						 for(n=0;n<4;n++)
						 {
							 if(strlen(output[n])!=8)
							 {
								 printf("\nError!!  At Line %i",i);
								 printf("\n%s",sourbuff);
								 exit(1);
							 }
						 }
						 fprintf(fo_dbf,"%s %s %s %s %s\r\n",yyh,output[0],output[1],
										 output[2],output[3]);
						 counter++;
						 gotoxy(40,20);
						 printf("Record:%i",counter);
						 break;
			default:printf("\r\nError!!  At Line %i",i);
							printf("\r\n%s",sourbuff);
							exit(1);

		}

//		numbps=atol(parm1[3]);	numbpe=atol(parm3[0]);
//			ltoa(numbs+j,chrpar0,10);
//			ltoa(numbps+j,chrpar3,10);
	};
	fclose(fi_obj);
	fclose(fo_dbf);

	return(0);
}

void _szx_disp(void)
{
	printf("Convert Program. Write by SunZhengxin .1997.");
	printf("\n\rConvert Text file to Format file .");
	printf("\n\r!!!For Ericsson As49 ChargMeter Only!!!");
	printf("\r\nFormat:\r\n\tAS49CConvert.EXE [textfile] [outfile]");
	printf("\r\r");
	printf("\r\n\nExample:Convert.EXE Meter225 OutMeter225");
	printf("\r\n\n\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -