X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/376814ea9f4cd3e7dda91f6afa435a6b0d1190b8..f8a441d3986f96851c8201fe82c5ce328b582d05:/emufs/indice_b.c diff --git a/emufs/indice_b.c b/emufs/indice_b.c index eba1739..f032d51 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -285,11 +285,11 @@ char *b_leer_nodo(INDICE *idx, int id) } /* Si estoy manejando string tengo que sacar las abreviaturas */ - if (idx->tipo_dato == IDX_STRING) { +/* XXX if (idx->tipo_dato == IDX_STRING) { b_leer_header(out, &header); claves = b_leer_claves(out, &header); desabreviar_claves(idx, claves, &header); - } + }*/ fclose(fp); return out; } @@ -301,11 +301,11 @@ static void b_grabar_nodo(INDICE *idx, int id, char *data) B_NodoEntry *claves; /* Si las claves son de tipo string debo abreviar antes de guardar */ - if (idx->tipo_dato == IDX_STRING) { +/*XXX if (idx->tipo_dato == IDX_STRING) { b_leer_header(data, &header); claves = b_leer_claves(data, &header); abreviar_claves(idx, claves, &header); - } + }*/ fp = fopen(idx->filename, "r+"); fseek(fp, id*idx->tam_bloque, SEEK_SET); fwrite(data, 1, idx->tam_bloque, fp); @@ -1132,3 +1132,102 @@ CLAVE emufs_indice_b_obtener_mayor_clave(INDICE *idx) return k; } +CLAVE emufs_indice_b_obtener_sig_clave(INDICE *idx, CLAVE k) +{ + int i; + B_NodoHeader header; + B_NodoEntry *claves; + char *nodo, *tmp; + int nodo_id; + CLAVE salida; + + /* Primero busco la clave pasada por parametro */ + nodo = b_leer_nodo(idx, 0); + nodo_id = 0; + while (nodo) { + b_leer_header(nodo, &header); + claves = b_leer_claves(nodo, &header); + i=0; + while ((i