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

📄 a1240.cpp

📁 计费系统中的S1240交换机脱机读磁带程序
💻 CPP
字号:
#include "A1240.H"

int main(void)
{
   int iPublic;
   iPublic = OpenFile();
   if( iPublic == -1 )
   {
		Message("File Con't Opened,Please Cheack And Try Again");
		return ERR_NoFile;
   }
   iPublic = RunTruns();
   if( iPublic == -1 )
   {
		Message("Con't Truns The Data To Bill File");
		return ERR_TrunFail;
   }
Message("I Have Truns The Data To Bill Successed");
return 0;
}

void Message(char *Message)
{
printf("\n*------------------------Out Message -------------------------------------*\n");
printf("OutMessage: %s",Message);
printf("\n*-------------------------------------------------------------------------*\n");
}

int RunTruns(void)
{
	int iRead,count,i;
	char cFileName[20];
	char DiskBuffer[LenBlock];
	char buf1[10],buf2[20];
	unsigned cnt1,cnt2,cnt3;
	char cbuf1[10],cbuf2[10],cbuf3[10];
	unsigned char *p;

	strcpy(cFileName, DataPath);
	strcat(cFileName, DataName);
	inFile = open(cFileName,O_RDONLY | O_BINARY);
	if(inFile == -1 )
		return -1;
	lseek(inFile,0l,SEEK_SET);
	do
	{
		printf("..");
//fprintf(OutFile,"-----------------------\n");
		iRead = ReadData(inFile,DiskBuffer);
//		iRead = read(inFile,DiskBuffer,LenBlock);
		if( iRead <= 0 )
		{
			break;
		}
		else
		{
		   if (DiskBuffer[0] == 0x01)
		   {
			p=DiskBuffer + 4;
			for (count=0; count<3; count++)
			{
			if (*p==0xEE)
				break;
			memset(buf1,0,sizeof(buf1));
			for (i=0; i<4; i++)
			{
				buf1[2*i]=getHigh(p[i]);
				if (buf1[2*i]=='E')
				{
					buf1[2*i]=0;
					break;
				}
				buf1[2*i+1]=getLow(p[i]);
				if (buf1[2*i+1]=='E')
				{
					buf1[2*i+1]=0;
					break;
				}
			  }//for(i = 0; i< 4; i++)
				p+=4;
				for (i=0; i<100; i++)
				{
					buf2[1]=*p++;
					buf2[0]=*p++;
					cnt1=*(unsigned *)buf2;
					buf2[1]=*p++;
					buf2[0]=*p++;
					cnt2=*(unsigned *)buf2;
					buf2[1]=*p++;
					buf2[0]=*p++;
					cnt3=*(unsigned *)buf2;
					sprintf(buf2,"%s%02d",buf1,i);
					sprintf(cbuf1,"%8d",cnt3);
					sprintf(cbuf2,"%8d",cnt2);
					sprintf(cbuf3,"%8d",cnt1);
					fprintf(OutFile,"%7s%8s%8s%8s%8s\n",buf2,cbuf1,cbuf2,cbuf3,"        ");
				}//for(i = 0;i< 100; i++)
			}//for(count i = 0; i < 3; i++ )
		   }// if(DiskBuffer[0] == 0x01)
		}// if (iRead < 0 ) else {}
	}while(1);
	close(inFile);
	fcloseall();
	return 1;
}

int OpenFile(void)
{
	char NameBuf[128];

	strcpy(NameBuf, DataPath);
	strcat(NameBuf, OutName);
	OutFile = fopen(NameBuf,"a+");
	if( OutFile == NULL )
	{
		Message("OutFile Not Opened");
		return -1;
	}

	strcpy(NameBuf, DataPath);
	strcat(NameBuf, ErrName);
	ErrFile = fopen(NameBuf,"a+");
	if( ErrFile == NULL )
	{
		Message("Error File Not Opened");
		return -1;
	}
 return 0;
}
int ReadData(int finFile,unsigned char *p)
{

	int iReadByte;
	iReadByte = read(finFile,p,LenBlock);
	if( iReadByte < 0 )
		return -1;
	return iReadByte;
}

int getHigh(int ch)
{
	ch=(ch&0xF0)>>4;
	ch+=(ch>9)?0x37:0x30;
    return ch;
}

int getLow(int ch)
{
    ch=ch&0x0F;
	ch+=(ch>9)?0x37:0x30;
    return ch;
}

⌨️ 快捷键说明

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