]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/registros.c
* Saco los <> porque molestan al juntar bloques
[z.facultad/75.06/emufs.git] / emufs_gui / registros.c
index 983858d7c66274e7748301100447694f0ffcf265..babea55ff39345375b86a35fb76290c30e69f4b3 100644 (file)
@@ -463,7 +463,7 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                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(unsigned int);
+               tam_data = (*size) - sizeof(EMUFS_REG_ID)-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID);
        }
 
        fprintf(stderr, "Tengo %d headers\n", cant_header);
@@ -477,10 +477,12 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
        }
        tmp = ptr;
        pos_actualizada = 0;
+       (*ancho) = 0;
        while (i<cant_header) {
                /* Verifico la pos_actual para el resaltado, asi queda coherente 
                 * en el cambio de formato
                 */
+               fprintf(stderr, "%d == %d\n", tmp-ptr, *pos_actual);
                if (((tmp - ptr) == *pos_actual) && (!pos_actualizada)) {
                        (*pos_actual) = tmp1-salida;
                        pos_actualizada = 1;
@@ -512,9 +514,10 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                tmp1 += 10;
                tmp += sizeof(EMUFS_BLOCK_ID);
 
+               if (pos_actualizada == 1) {
+                       (*ancho) = 50+strlen(flotante);
+               }
                j = 0;
-               /* TODO Mostrar en pantalla los items!! */
-               fprintf(stderr, "DATA = %d\n", tam_data-10*sizeof(t_Item));
                while (j < (tam_data-10*sizeof(t_Item))) {
                        if (*tmp == '\0') {
                                if (ant == (*tmp)){
@@ -528,6 +531,8 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                        ant = (*tmp);
                        tmp++;
                        tmp1++;
+                       if (pos_actualizada == 1)
+                               (*ancho)++;
                        j++;
                }
                /* Ahora proceso los items */
@@ -536,6 +541,8 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                        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') {
@@ -550,24 +557,25 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                                ant = (*tmp);
                                tmp++;
                                tmp1++;
+                               if (pos_actualizada == 1)
+                                       (*ancho)++;
                                j++;
                        }
                        k++;
                }
+               if (pos_actualizada == 1)
+                       pos_actualizada = 2;
                i++;
        }
-       fprintf(stderr, "%lu =? %d\n", *size, tmp-ptr);
        free(ptr);
 
        PERR("Termine");
        if (emu->tam_bloque > emu->tam_reg) {
                (*size) = tmp1-salida;
-               (*ancho) = tam_data + 15*cant_header + cant_items*10 - cant_items*sizeof(int);
        } else {
-               (*size) = (*size)-sizeof(EMUFS_REG_ID)-sizeof(unsigned int)+21;
-               (*ancho) = (*size);
+               (*size) = tmp1-salida;
+               (*ancho) = tmp1-salida;
        }
-       memset(tmp1, '.', (*size)-(tmp1-salida)); 
        salida[*size-1] = '\0';
 
        return salida;