/*#define americano 0 // driver GTE #define europeo 1 #define lmax 200 #define posin 18 #define estac 18+posin #define linea 28+posin #define durac 73+posin #define hor 66 +posin #define fech 0 #define tranf 18+posin #define numero 45+posin #define ccost 0 #define proye 85+posin // hexadecimal las tortolas #define cuenta 0 #define pulsos 0 #define ruta 0 #define prinum 0 #define ring 0 #define antran 0 // anexo transferido #define fofech europeo */ #define americano 0 // driver GTE #define europeo 1 #define lmax 200 #define posin 18 #define estac 1+posin #define linea 11+posin #define durac 56+posin #define hor 49 +posin // gte los bronces // chacres #define fech 0 #define tranf 1+posin #define numero 28+posin #define ccost 0 #define proye 67+posin #define cuenta 0 #define pulsos 0 #define ruta 17+posin #define prinum 0 #define ring 0 #define antran 0 // anexo transferido #define fofech europeo extern char rgua[]; void in_central() { rgua[0]='\0'; } void fi_central() { } char fecha[8]; int actfec; actfec=0; void DatCentral(char *buf, char *tel, int vestac, int vlinea,int vdurac,int vhor, int vfech, int vtranf, int vnumero, int vccost,int vproye, int vcuenta, int vpulsos, int vruta, int vprinum, int vring, int vantran, int vfofech) { int k,z,horatot, diaT, hora1,hora2,minu1,minu2,minutot,i=strlen(buf), cont, j; char tipo; char horaini[5]; char horafini[5]; char minuini[2]; char minufini[2]; char dia[3]; k=0; cont=0; if (i>vdurac && isdigit(buf[vestac+2]) ) //línea valida { for (j=0;j<5;j++) { horaini[j]=buf[vhor+j]; horafini[j]=buf[vdurac+j];} hora1=atof(horaini); hora2=atof(horafini); horatot=hora1+hora2; horatot=horatot*60; for (j=0;j<2;j++) { minuini[j]=buf[vhor+j+3]; minufini[j]=buf[vdurac+j+3];} minu1=atof(minuini); minu2=atof(minufini); minutot=minu1+minu2; horatot=horatot+minutot; for (j=0;j<2;j++) { dia[j]=buf[vfech+3+j];} diaT=atof(dia); if (horatot>1439) {diaT--; _itoa( diaT, dia, 10 );} k=0; z=0; if ( isdigit(buf[vestac]) && buf[vlinea]=='T' ) { for (j=0;buf[vestac+j]!=' ';j++) tel[k++] = buf[vestac+j]; //anexo salida tipo='O'; } else if ( buf[vestac]=='T' && isdigit(buf[vlinea])) { for (j=0;buf[vlinea+j]!=' ';j++) tel[k++] = buf[vlinea+j] ; //anexo entrada tipo='I'; } else {tel[k++]='T'; tel[k++]='R';tel[k++]='O';tel[k++]='N';tel[k++]='C';tel[k++]='A';tel[k++]='L';tipo='R';} tel[k++] = ' ' ; if (tipo=='O') for (j=0;buf[vlinea+j]!=' ';j++) tel[k++] = buf[vlinea+j] ; //línea salida else if (tipo=='I') for (j=0;buf[vestac+j]!=' ';j++) tel[k++] = buf[vestac+j]; // linea entrada else if (tipo=='R') for (j=0;buf[vlinea+j]!=' ';j++) tel[k++] = buf[vlinea+j] ; //línea tandem else tel[k++]='*'; tel[k++] = ' ' ; if (isdigit(buf[vdurac])) //duración { tel[k++]= buf[vdurac]; tel[k++]=buf[vdurac+1]; tel[k++]=':'; tel[k++]=buf[vdurac+3]; tel[k++]=buf[vdurac+4]; tel[k++]=':'; tel[k++]='0';tel[k++]='0'; } tel[k++]=' '; if (isdigit(buf[vhor] ) ) { tel[k++] = buf[vhor];tel[k++] = buf[vhor+1];tel[k++] = ':'; tel[k++] = buf[vhor+3];tel[k++] = buf[vhor+4]; } tel[k++]=' '; if (horatot>1439 && diaT!=0 ) { tel[k++]=buf[vfech]; tel[k++]=buf[vfech+1]; tel[k++]='/'; //fecha if (diaT>9) {tel[k++]=dia[0]; tel[k++]=dia[1]; tel[k++]='/';} //dia anterior else {tel[k++]='0'; tel[k++]=dia[0]; tel[k++]='/';} //dia anterior tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7]; } if (horatot>1439 && diaT==0 ) { if (buf[vfech]=='0' && buf[vfech+1]=='1') // enero { tel[k++]='1'; tel[k++]='2'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]='0'; tel[k++]='2';} else if (buf[vfech]=='0' && buf[vfech+1]=='2') // febrero { tel[k++]='0'; tel[k++]='1'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='3') // marzo { tel[k++]='0'; tel[k++]='2'; tel[k++]='/'; tel[k++]='2'; tel[k++]='8'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='4') // abril { tel[k++]='0'; tel[k++]='3'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='5') // mayo { tel[k++]='0'; tel[k++]='4'; tel[k++]='/'; tel[k++]='3'; tel[k++]='0'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='6') // junio {tel[k++]='0'; tel[k++]='5'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='7') // julio { tel[k++]='0'; tel[k++]='6'; tel[k++]='/'; tel[k++]='3'; tel[k++]='0'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='8') // agosto { tel[k++]='0'; tel[k++]='7'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='0' && buf[vfech+1]=='9') // septiembre { tel[k++]='0'; tel[k++]='8'; tel[k++]='/'; tel[k++]='3'; tel[k++]='0'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='1' && buf[vfech+1]=='0') // octubre { tel[k++]='0'; tel[k++]='9';tel[k++]='/'; tel[k++]='3'; tel[k++]='0'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='1' && buf[vfech+1]=='1') // noviembre { tel[k++]='1'; tel[k++]='0'; tel[k++]='/'; tel[k++]='3'; tel[k++]='1'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} else if (buf[vfech]=='1' && buf[vfech+1]=='2') // diciembre { tel[k++]='1'; tel[k++]='1'; tel[k++]='/'; tel[k++]='3'; tel[k++]='0'; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7];} } else if ( horatot<=1439) { tel[k++]=buf[vfech]; tel[k++]=buf[vfech+1]; tel[k++]='/'; //fecha tel[k++]=buf[vfech+3]; tel[k++]=buf[vfech+4]; tel[k++]='/'; tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7]; } /* else { for (j=0;j<6;j++) { tel[k++]=fecha[z++];} // cambio para 59 tel[k++]=buf[vfech+6]; tel[k++]=buf[vfech+7]; }*/ tel[k++] = ' '; if ( tipo=='I') tel[k++]='I'; //tipo de llamada else if (buf[vlinea+12]=='E'|| buf[vlinea+11]=='O' ) //else if (buf[vlinea+7]=='5'|| buf[vlinea+7]=='2' ) tel[k++]='O'; //saliente else tel[k++]='T'; // interna tel[k++] = ' '; if (tipo!='I') { for(j=0;j<19;j++) //número { if(isdigit(buf[vnumero+j])) {tel[k++]=buf[vnumero+j]; cont++;} } } else { tel[k++]='E';tel[k++]='N';tel[k++]='T';tel[k++]='R';tel[k++]='A';tel[k++]='D';tel[k++]='A';cont=1; } if(cont==0) tel[k++]='*'; cont=0; tel[k++]=' '; tel[k++]='*'; tel[k++]='*'; tel[k++]='*'; // centro de costo tel[k++]=' '; tel[k++]='*' ; tel[k++] = ' ' ; tel[k++] = '*' ; // código de cuenta tel[k++] = ' ' ; for (j=0 ; j<4 ; j++) tel[k++]= '0' ; tel[k++] = ' ' ; if (isdigit(buf[vruta])) {tel[k++]=buf[vruta];tel[k++]=buf[vruta+1];} else {tel[k++] = '*' ; tel[k++] = '*' ; tel[k++] = '*' ;} /* ruta */ tel[k++] = ' ' ; tel[k++] = '*' ; /* primer numero */ tel[k++] = ' ' ; tel[k++]='0'; tel[k++]='0'; tel[k++]=':'; tel[k++]='0'; tel[k++]='0'; tel[k++] = ' ' ; tel[k++] = '*' ; // anexo transferido tel[k++] = ' ' ; tel[k++]='*'; tel[k++] = '\r'; tel[k++] = '\n'; tel[k++] = '\0'; } else if (buf[vestac+1]=='F' && buf[vnumero]=='E' ) {actfec=1; fecha[0]=buf[vnumero+3];fecha[1]=buf[vnumero+4];fecha[2]='/'; fecha[3]=buf[vnumero+6];fecha[4]=buf[vnumero+7];fecha[5]='/'; fecha[6]=buf[vnumero+9];fecha[7]=buf[vnumero+10]; } }