From 7309bf37adc05bf4b05155f72a8e912ebdac0e6f Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sun, 18 Apr 2004 22:42:03 +0000 Subject: [PATCH] * Ver Registros de Facturas con archivo de tipo3 ok --- emufs_gui/viewer.c | 83 ++++++---------------------------------------- 1 file changed, 10 insertions(+), 73 deletions(-) diff --git a/emufs_gui/viewer.c b/emufs_gui/viewer.c index 5d325da..26cd091 100644 --- a/emufs_gui/viewer.c +++ b/emufs_gui/viewer.c @@ -637,26 +637,19 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz { char *tmp, *salida, *tmp1, pos_actualizada, ant; char flotante[10]; - int cant_header, i=0, j, tam_data, k; - int cant_items; + int cant_header, i=0, j, tam_data; if (ptr == NULL) return NULL; PERR("Empieza el baile"); /* Calculo cuantos headers de registros va a haber en el archivo */ - if (emu->tam_bloque > emu->tam_reg) { - cant_header = emu->tam_bloque / (emu->tam_reg+sizeof(EMUFS_REG_ID)); - if (cant_header == 0) cant_header++; /* Si tam_reg > tam_bloque, voy a tener solo 1 header */ - tam_data = emu->tam_reg-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID); - } else { - cant_header = 1; - tam_data = (*size) - sizeof(EMUFS_REG_ID)-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID); - } + cant_header = emu->tam_bloque / (emu->tam_reg+sizeof(EMUFS_REG_ID)); + if (cant_header == 0) cant_header++; /* Si tam_reg > tam_bloque, voy a tener solo 1 header */ + tam_data = emu->tam_reg; - /* El tamaƱo del nuevo array lo calculo asi : - * - */ - tmp1 = salida = (char *)malloc(1000000); /*(*size)-(sizeof(char *)+sizeof(t_Item *)+sizeof(EMUFS_REG_ID)+sizeof(int)*3+sizeof(float)+sizeof(EMUFS_BLOCK_ID))*cant_header + 5*cant_header*10+1);*/ + (*size) = (*size) - cant_header*sizeof(EMUFS_REG_ID)+cant_header*10+1; + tmp1 = salida = (char *)malloc(*size); + memset(salida, '.', *size); if (salida == NULL) { PERR("Error de malloc en salida"); return NULL; @@ -676,34 +669,12 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz sprintf(tmp1, "(%08lu)", *((EMUFS_REG_ID *)tmp)); tmp1 += 10; tmp += sizeof(EMUFS_REG_ID); - /* Pongo el campo numero */ - sprintf(tmp1, "[%08d]", *((int *)tmp)); - tmp1 += 10; - tmp += sizeof(int); - /* Pongo campo procdoi */ - sprintf(flotante, "[%5.2f]", *((float *)tmp)); - memcpy(tmp1, flotante, strlen(flotante)); - tmp1 += strlen(flotante); - tmp += sizeof(float); - /* Pongo campo numero_remito */ - sprintf(tmp1, "[%08d]", *((int *)tmp)); - tmp1 += 10; - tmp += sizeof(int); - /* Pongo numero de items */ - sprintf(tmp1, "[%08d]", *((int *)tmp)); - cant_items = *((int *)tmp); - tmp1 += 10; - tmp += sizeof(int); - /* Pongo reg_nota */ - sprintf(tmp1, "(%08lu)", *((EMUFS_BLOCK_ID*)tmp)); - tmp1 += 10; - tmp += sizeof(EMUFS_BLOCK_ID); if (pos_actualizada == 1) { - (*ancho) = 50+strlen(flotante); + (*ancho) = 10; } j = 0; - while (j < (tam_data-10*sizeof(t_Item))) { + while (j < (tam_data)) { if (*tmp == '\0') { if (ant == (*tmp)){ (*tmp1) = '.'; @@ -711,7 +682,7 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz (*tmp1) = '|'; } } else { - (*tmp1) = (*tmp); + copy_char(tmp1, tmp); } ant = (*tmp); tmp++; @@ -720,34 +691,6 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz (*ancho)++; j++; } - /* Ahora proceso los items */ - k = 0; - while (k < 10) { - sprintf(tmp1, "[%08d]", *((int *)tmp)); - tmp1 += 10; - tmp += sizeof(int); - if (pos_actualizada == 1) - (*ancho)+=10; - j = 0; - while (j < (sizeof(t_Item)-sizeof(int))) { - if (*tmp == '\0') { - if (ant == (*tmp)){ - (*tmp1) = '.'; - } else { - (*tmp1) = '|'; - } - } else { - (*tmp1) = (*tmp); - } - ant = (*tmp); - tmp++; - tmp1++; - if (pos_actualizada == 1) - (*ancho)++; - j++; - } - k++; - } if (pos_actualizada == 1) pos_actualizada = 2; i++; @@ -755,12 +698,6 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz free(ptr); PERR("Termine"); - if (emu->tam_bloque > emu->tam_reg) { - (*size) = tmp1-salida; - } else { - (*size) = tmp1-salida; - (*ancho) = tmp1-salida; - } salida[*size-1] = '\0'; return salida; -- 2.43.0