From 46453eaa7a7cbd8a43d9bbebda683814b13a832c Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sun, 11 Apr 2004 04:07:37 +0000 Subject: [PATCH] * BUGFIX : en tipo3 cuando pedia lugar estaba faltando agregar sizeof(EMUFS_REG_ID) * CodeClean : se limpia un poco algunas cosas, se ajusta coding style. --- emufs/did.c | 2 +- emufs/fsc.c | 21 ++++++++++++--------- emufs/idx.c | 15 +++++++-------- emufs/tipo3.c | 4 ++-- emufs_gui/facturas.c | 6 +++--- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/emufs/did.c b/emufs/did.c index e07fa82..2a071a6 100644 --- a/emufs/did.c +++ b/emufs/did.c @@ -73,7 +73,7 @@ EMUFS_REG_ID emufs_did_get_last(EMUFS *efs) } else { fclose(f_did); /* si el archivo esta vacio */ - n_regid = -1; + n_regid = EMUFS_NOT_FOUND; } return n_regid; } diff --git a/emufs/fsc.c b/emufs/fsc.c index a94a2f1..d9b26bb 100644 --- a/emufs/fsc.c +++ b/emufs/fsc.c @@ -205,31 +205,34 @@ int emufs_fsc_actualizar(EMUFS *emu, EMUFS_BLOCK_ID n_marker, EMUFS_FREE n_frees } /* Me devuelve el ID del bloque u Offset del Gap donde quepa un registro, y guarda en n_freespace el espacio libre actualizado */ -EMUFS_BLOCK_ID emufs_fsc_buscar_lugar(EMUFS *emu, EMUFS_FREE n_RegSize, EMUFS_FREE *n_freespace) +EMUFS_BLOCK_ID emufs_fsc_buscar_lugar(EMUFS *emu, EMUFS_FREE regsize, EMUFS_FREE *freespace) { FILE *f_fsc; EMUFS_FSC reg; char name_f_fsc[255]; - unsigned short int b_Found = 0; + char found = 0; strcpy(name_f_fsc,emu->nombre); strcat(name_f_fsc, EMUFS_FSC_EXT); - if ( (f_fsc = fopen(name_f_fsc,"r"))==NULL ) return -1; + if ( (f_fsc = fopen(name_f_fsc,"r"))==NULL ) return EMUFS_NOT_FOUND; /* Inicializamos la estructura para devolver algun valor en concreto */ /* en caso de que no se halle un espacio libre apropiado */ - while(!feof(f_fsc) && !b_Found){ + while(!feof(f_fsc)){ if (fread(®,sizeof(EMUFS_FSC),1,f_fsc) != 1) continue; - if (reg.n_freespace >= n_RegSize) b_Found = 1; + if (reg.n_freespace >= regsize) { + found = 1; + break; + } } /* Si salio por error o por fin de archivo y no encontro space... */ - if (!b_Found) { - reg.n_marker = -1; - *n_freespace = emu->tam_bloque; + if (!found) { + reg.n_marker = EMUFS_NOT_FOUND; + *freespace = emu->tam_bloque; } - else *n_freespace = reg.n_freespace; + else *freespace = reg.n_freespace; fclose(f_fsc); return reg.n_marker; diff --git a/emufs/idx.c b/emufs/idx.c index c8babf4..9ae481a 100644 --- a/emufs/idx.c +++ b/emufs/idx.c @@ -68,28 +68,27 @@ int emufs_idx_crear(EMUFS *efs) /* Devuelve el mayor id de registro utilizado so far en el archivo de datos, revisando el indice. */ EMUFS_REG_ID emufs_idx_buscar_mayor_id(EMUFS *emu) { - EMUFS_REG_ID n_idreg, max = 0; + EMUFS_REG_ID max = 0; FILE *f_idx; EMUFS_IDX reg; char name_f_idx[255]; /* TODO usar malloc para no limitar el tamaño de nombre de archivo */ - unsigned short int b_found = 0; + char found = 0; strcpy(name_f_idx,emu->nombre); strcat(name_f_idx, EMUFS_IDX_EXT); if ( (f_idx = fopen(name_f_idx,"r")) == NULL) return -1; /*ERROR*/ - n_idreg = -1; while ( !feof(f_idx) ){ /* Me aseguro de leer la cantidad de bytes correcta */ if (fread(®,sizeof(EMUFS_IDX),1,f_idx) != 1) continue; - if ( reg.n_idreg >= max ) { + if (reg.n_idreg >= max) { max = reg.n_idreg; - b_found = 1; + found = 1; } } fclose(f_idx); - if (!b_found) + if (!found) return (0); else return(max+1); @@ -179,8 +178,8 @@ int emufs_idx_borrar(EMUFS *emu, EMUFS_REG_ID n_IdReg) /*leo todos los que quedan*/ fseek(f_idx,final,SEEK_SET); fread(buffer,sizeof(EMUFS_IDX),cant-1,f_idx) ; - for( i=0; itam_reg, &fs); + num_bloque = emufs_fsc_buscar_lugar(emu, emu->tam_reg+sizeof(EMUFS_REG_ID), &fs); /*si no hay bloques con suficiente espacio creo un bloque nuevo */ if (num_bloque == -1) { if ( (file = fopen(name_f,"a+"))==NULL ) return -1; /*ERROR*/ @@ -202,7 +202,7 @@ EMUFS_REG_ID emufs_tipo3_get_id(EMUFS *emu) { EMUFS_REG_ID id; - if ( (id = emufs_did_get_last(emu)) == -1 ) + if ( (id = emufs_did_get_last(emu)) == EMUFS_NOT_FOUND ) id = emufs_idx_buscar_mayor_id(emu); return id; } diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index f49a3f0..68ffe06 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -8,7 +8,7 @@ static int al_azar(int min, int max); static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, int *size); /* es por cada mes a generar */ -#define CANT_FACTURAS 500 +#define CANT_FACTURAS 1500 t_LstFacturas *fact_cargar(const char *filename) { @@ -21,13 +21,13 @@ t_LstFacturas *fact_cargar(const char *filename) lst_facturas = (t_LstFacturas *)malloc(sizeof(t_LstFacturas)); if (filename != NULL) { - lst_facturas->fp = emufs_crear("facturas", T3, sizeof(t_Factura)*20+100, sizeof(t_Factura)); + lst_facturas->fp = emufs_crear("facturas", T3, sizeof(t_Factura)*20, 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; i