]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo3.c
arranca B+, se va a poner aspera la cosa
[z.facultad/75.06/emufs.git] / emufs / tipo3.c
index bf93f81dac5edf31ff0873117da42dcd9c7060ed..10d6f33eb3d64a71a717de605f67bb280932cffd 100644 (file)
@@ -575,14 +575,33 @@ void emufs_tipo3_leer_bloque_raw(EMUFS *efs, EMUFS_BLOCK_ID id, char **actual, c
        (*size1) = (*size2) = (*size3) = efs->tam_bloque;
 }
 
-int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int *err)
+CLAVE obtener_clave(void *ptr, INDICE indice)
 {
-       FILE *f;
-       char f_name[255];
+       CLAVE clave;
+       
+       switch ( indice->tipo_dato ){
+               case IDX_FLOAT: 
+                       memcpy(&clave, ptr+indice->offset, sizeof(float));
+               break;
+               case IDX_INT:
+                       memcpy(&clave, ptr+indice->offset, sizeof(int));
+       }
+       return clave;
+}
+
+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;
+       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;
+       }