X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/0213eecd485623b3f5def829c4b16acaf4baad2e..ddc964cd151aae4713a5d2d658da986df7cd3441:/emufs/tipo1.c diff --git a/emufs/tipo1.c b/emufs/tipo1.c index d14d756..fa1c012 100644 --- a/emufs/tipo1.c +++ b/emufs/tipo1.c @@ -116,7 +116,7 @@ void* emufs_tipo1_leer_registro(EMUFS* efs, CLAVE clave, block_id = dato.bloque; reg_id = dato.id; } else { - /* TODO ID de donde lo puedo sacar :-) , lo cargo en CLAVE ? */ + reg_id = clave.i_clave; block_id = emufs_idx_buscar_registro(efs, reg_id); } if (block_id == EMUFS_NOT_FOUND) { @@ -376,14 +376,18 @@ int emufs_tipo1_borrar_registro(EMUFS* efs, CLAVE k) INDICE_DATO dato; int err = 0; /* para almacenar código de error */ - /*block_id = emufs_idx_buscar_registro(efs, reg_id); - if (block_id == EMUFS_NOT_FOUND) { - PERR("Registro no encontrado"); - return EMUFS_NOT_FOUND; - }*/ - dato = efs->indices->existe_entrada(efs->indices, k); - block_id = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/ - reg_id = dato.id; + if (efs->indices != NULL) { + dato = efs->indices->existe_entrada(efs->indices, k); + block_id = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/ + reg_id = dato.id; + } else { + reg_id = k.i_clave; + block_id = emufs_idx_buscar_registro(efs, reg_id); + if (block_id == EMUFS_NOT_FOUND) { + PERR("Registro no encontrado"); + return EMUFS_NOT_FOUND; + } + } if (reg_id == -1) return EMUFS_NOT_FOUND; @@ -690,10 +694,10 @@ EMUFS_BLOCK_ID emufs_tipo1_grabar_bloque_fsc(EMUFS *efs, void *block, return block_id; } -EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, EMUFS_REG_ID id, +EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, CLAVE k, void *data, EMUFS_REG_SIZE size, int* err) { -/* emufs_tipo1_borrar_registro(efs, id);*/ + emufs_tipo1_borrar_registro(efs, k); return emufs_tipo1_grabar_registro(efs, data, size, err); }