X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/d1aba415c74a504ffcd56a77878d24661db1f98c..66243c7630bd677829a4263930f856fb70a0aa68:/emufs_gui/facturas.c diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index fbf1b25..6a56a92 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -12,17 +12,21 @@ static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, int *siz t_LstFacturas *fact_cargar(const char *filename) { - int i, numero, size; + int i, numero, size, error, cant; char *estados[6] = {"PN", "CD", "CM", "CF", "PM", "NC"}; char *fps[6] = {"CO", "CR", "CH"}; void *save; t_Factura fact; + lst_facturas = (t_LstFacturas *)malloc(sizeof(t_LstFacturas)); + if (filename == NULL) { + lst_facturas->fp = emufs_crear("facturas", T3, sizeof(t_Factura)*2, sizeof(t_Factura)); /* Genero las facturas en forma automática */ /* Genero las facturas de fecha Abril 2004 */ srand(time(NULL)); numero = 0; + cant = 0; for(i=0; ifp->grabar_registro(lst_facturas->fp, save, size); + lst_facturas->array[cant].numero = numero; + lst_facturas->array[cant].num_reg = lst_facturas->fp->grabar_registro(lst_facturas->fp, save, size, &error); } } + lst_facturas->cant = cant; } else { /* Cargo un archivo existente */ } @@ -72,7 +78,8 @@ void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, int *size) i[6] = sizeof(float); i[7] = sizeof(char)*(strlen(f->ctacte)+1); /* +1 por el \0 para separar */ i[8] = sizeof(char)*(strlen(f->cheque)+1); /* +1 por el \0 para separar */ - tmp = (char *)malloc(i[0]+i[1]+i[2]+i[3]+i[4]+i[5]+i[6]+i[7]+i[8]); + (*size) = i[0]+i[1]+i[2]+i[3]+i[4]+i[5]+i[6]+i[7]+i[8]; + tmp = (char *)malloc(*size); if (tmp == NULL) return NULL; /* Ahora copio la info */ memcpy(tmp, &f->numero, i[0]);