📄 myfunc01.cpp
字号:
#include "StdAfx.h"
int igLogTimes=0;
int igConnectTimes=0;
int igRecvBytes=0;
int igSendBytes=0;
char agCurDir[1024];
time_t timeBegin;
/*** 功能 取系统完整时间,格式YYYYMMDD HH:MM:SS:MMM*/
int GetDealTime( char * aOut)
{
struct tm * now;
time_t now_sec;
char tmstr[150];
int offset;
struct timeb tp;
time(&now_sec);
now = localtime(&now_sec);
offset = 1900;
ftime(&tp);
sprintf( tmstr, "<span style=\"background-color: #C0C0C0\">%04d-%02d-%02d %02d:%02d:%02d:%03</span>",
now->tm_year+offset, now->tm_mon+1, now->tm_mday,
now->tm_hour, now->tm_min, now->tm_sec,tp.millitm);
strcpy(aOut,tmstr);
return 0;
}
/**************************************************************
** 函数名 FileLog
** 功能 记跟踪日志:打印指定信息
** 作者 tcpip_2005@126.com(动力通信工作组)
** 全局变量 agLogFile
** 环境变量
** 输入参数 frm, :用法格式同printf
** 输出参数 无
** 返回值 整型
-1:操作日志文件出错.
0:成功
**************************************************************/
int FileLog( char *fmt, ...)
{
FILE *fp;
char buf[110000], fname1[300];
char buf1[300], fname2[300];
struct stat sBuf;
va_list ap;
if ( *fmt )
{
va_start(ap,fmt);
vsprintf(buf, fmt, ap);
va_end(ap);
}
sprintf(fname1,"SimMsn_0.htm");
sprintf(fname2,"SimMsn_1.htm");
stat(fname1,&sBuf);
if( (sBuf.st_size >= 2000000 )|| (igLogTimes==0))
{
rename(fname1,fname2);
if (( fp = fopen(fname1,"w")) == NULL) return(-1);
fprintf( fp,"<html><head><meta http-equiv=\"Content-Language\" content=\"zh-cn\">");
fprintf( fp,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
fprintf( fp,"<title>LogPages</title></head><body>");
fprintf( fp,"<p><font face=\"宋体\" size=\"2\">" );
fclose( fp );
time(&timeBegin);
}
if (( fp = fopen(fname1,"a+")) == NULL) return(-1);
GetDealTime( buf1 );
fprintf( fp,"%s [%x] : %s<br>\n",buf1,_getpid(),buf );
fclose( fp );
igLogTimes++;
return 0;
}
int DataLog( char *fmt, ...)
{
FILE *fp;
char buf[110000], fname1[300];
va_list ap;
if ( *fmt )
{
va_start(ap,fmt);
vsprintf(buf, fmt, ap);
va_end(ap);
}
sprintf(fname1,"SimMsn_0.htm");
if (( fp = fopen(fname1,"a+")) == NULL) return(-1);
fprintf( fp,"%s",buf );
fclose( fp );
return 0;
}
int EnCodeFileLog( int iInProxyID, char *aInCS, char *aInBuf, int iLen )
{
FILE *fp;
char aObuf[10010], fname1[300];
char buf1[300], fname2[300];
struct stat sBuf;
EnCodeBuf( aInBuf,iLen , aObuf , 10000);
sprintf(fname1,"SimMsn_0_%d.htm",iInProxyID);
sprintf(fname2,"SimMsn_1_%d.htm",iInProxyID);
stat(fname1,&sBuf);
if( sBuf.st_size >= 2000000 )
{
rename(fname1,fname2);
}
if (( fp = fopen(fname1,"a+")) == NULL) return(-1);
GetDealTime( buf1 );
fprintf( fp,"%s [%x] : %s %04d [%s]\n",buf1,_getpid(),aInCS,iLen,aObuf );
fclose( fp );
return 0;
}
int EnCodeBuf( char *aInBuf, int iLen , char *aOut , int iMaxLen)
{
int i,k;
unsigned char cTmp1;
k = 0;
for( i =0 ; i< iLen; i ++ )
{
if( iMaxLen < k+5 ) return -1;
if( aInBuf[i] == ' ' )
{
aOut[k]= '+';
k++;
}
else if( aInBuf[i]>32 && aInBuf[i]<127 && aInBuf[i]!=37 )
{
aOut[k]= aInBuf[i];
k++;
}
else
{
aOut[k] = 37 ;
cTmp1=(unsigned char)aInBuf[i];
sprintf( aOut + k +1, "%02x", cTmp1 );
k=k+3;
}
}
aOut[k] = 0x00;
return k;
}
int UnCodeValue(char *aValue)
{
int i= 0 , j=0 , k=0 ,ilLen;
char alBuf[1024], alHex[3];
ilLen = strlen( aValue );
memset(alBuf, 0x00, sizeof(alBuf));
for(i = 0 ; i < ilLen ; i ++ )
{
if( aValue[i] == '+' )
{
alBuf[k] = ' ';
}
else if( aValue[i] != '%' )
{
alBuf[k] = aValue[i];
}
else
{
memset(alHex, 0x00, sizeof(alHex));
memcpy(alHex , aValue + i +1 , 2 );
sscanf( alHex , "%x", &j );
alBuf[k] = j;
i = i + 2;
}
k ++ ;
}
memset(aValue , 0x00 , ilLen ) ;
memcpy(aValue , alBuf , k );
return k;
}
int DeCodeBuf(char *aValue,int iInLen)
{
int i= 0 , j=0 , k=0 ,ilLen;
char alBuf[1024], alHex[3];
ilLen = iInLen;
memset(alBuf, 0x00, sizeof(alBuf));
for(i = 0 ; i < ilLen ; i ++ )
{
if( aValue[i] == '+' )
{
alBuf[k] = ' ';
}
else if( aValue[i] != '%' )
{
alBuf[k] = aValue[i];
}
else
{
memset(alHex, 0x00, sizeof(alHex));
memcpy(alHex , aValue + i +1 , 2 );
sscanf( alHex , "%x", &j );
alBuf[k] = j;
i = i + 2;
}
k ++ ;
}
memset(aValue , 0x00 , ilLen ) ;
memcpy(aValue , alBuf , k );
return k;
}
int ReadFileOneLine( char * aFile , int iInLineNum ,char *aLine)
{
char alBuf[BUF_SIZE];
int i;
FILE *fp;
fp=fopen(aFile,"r");
if (fp == NULL)
{
return - 404 ;
}
i=0;
memset(alBuf,0x00,sizeof(alBuf));
while( fgets(alBuf,BUF_SIZE-1,fp) != NULL )
{
i++;
if( i==iInLineNum )
{
memcpy(aLine , alBuf, strlen(alBuf));
fclose(fp);
return strlen(alBuf);
}
memset(alBuf,0x00,sizeof(alBuf));
}
fclose(fp);
return -100;
}
int GetValueByName( unsigned char *aInIE_DATA,int iInLen,char *FldName ,char *FldValue)
{
int ilLen , i = 0 , ilFieldID = 0;
int ilFldName1 , ilFldValue1 , ilField_DATA_Len = 0;
int ilFldName2 , ilFldValue2 ;
char alBuf[81920], alName[100],alValue[8192];
memset(alBuf , 0x00 ,sizeof( alBuf));
memset(alName , 0x00 ,sizeof( alName));
memset(alValue , 0x00 ,sizeof( alValue));
//ilLen = strlen( (char *)aInIE_DATA );
memcpy(alBuf, aInIE_DATA, iInLen );
ilFldName1 = 0 ;
ilFldName2 = 0 ;
ilFldValue1 = 0 ;
ilFldValue2 = 0 ;
ilLen = iInLen;
//FileLog("GetValueByName = [%s], %d", alBuf ,ilLen);
for( i = 0 ; i<= ilLen ; i++ )
{
if( alBuf[i] == 0x3d )
{
memset(alName , 0x00 ,sizeof( alName));
memcpy(alName,alBuf+ilFldName1, i-ilFldName1);
//FileLog("Find = FldName[%s],%d",alName,i);
ilFldValue1 = i + 1 ;
}
else if( (alBuf[i] == 0x26) || (i == ilLen ))
{
memset(alValue , 0x00 ,sizeof( alValue));
memcpy(alValue,alBuf+ilFldValue1,i-ilFldValue1);
//FileLog("Find=FldValue[%s],%d",alValue,i);
ilFldName1 = i + 1 ;
ilFieldID ++ ;
if( strcmp( alName , FldName ) !=0 ) continue ;
UnCodeValue( alValue ) ;
FileLog("Find! Name:[%s],UnCodeValue:[%s] ",alName,alValue);
memcpy(FldValue, alValue , strlen(alValue));
FldValue[ strlen(alValue) ] = 0x00;
return 0 ;
}
}
return - 100 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -