cant_bloques = 1;
/*si existe, lo busco en el archivo de bloques*/
- if (emu->indices != NULL) {
+ if ((emu->indices != NULL) && (*err != 1)) {
/* TODO : Verificar donde esta el indice primario */
dato = emu->indices->existe_entrada(emu->indices, clave);
block = dato.bloque;
ID = dato.id;
+ PERR("Use indice");
} else {
- /* TODO ID de donde lo puedo sacar :-) , lo cargo en CLAVE ? */
+ /* Si no tengo claves, uso el campo entero para pasar un ID
+ * directamente.
+ */
+ PERR("Use directo");
+ ID = clave.i_clave;
block = emufs_idx_buscar_registro(emu,ID); /*me devuelve el nro de bloque al que pertenece el registro*/
}
if ( block == EMUFS_NOT_FOUND ){
int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int offset, EMUFS_BLOCK_ID num_bloque, int *err)
{
- FILE *f;
- char f_name[255];
- char *bloque;
- int size;
- CLAVE clave_ant;
-
- strcpy(f_name, emu->nombre);
- strcat(f_name, ".dat");
-
- bloque = emufs_tipo3_leer_bloque(emu, num_bloque, err);
- if (err){
- PERR("NO SE PUDO LEER EL BLQUE");
- return -1;
- }
-
-
-
return 0;
}