]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
Borrado de registros ya funciona entero dado que se arreglo el idx_borrar. Rutina...
authorAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 11 Apr 2004 18:56:48 +0000 (18:56 +0000)
committerAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 11 Apr 2004 18:56:48 +0000 (18:56 +0000)
emufs/fsc.c
emufs/tipo2.c
emufs/tipo2_main.c

index 0b9449bd1a12d2f0fa0201507f251191d8bc4d48..e71d13d2a5bcac2406e4e10bfcba248b41f8911a 100644 (file)
@@ -148,14 +148,20 @@ int emufs_fsc_agregar_gap(EMUFS *emu, EMUFS_OFFSET n_marker, EMUFS_FREE n_freesp
          printf("fsc.c >> Pre Gap found is reg number %lu in .fsc file\n",n_gap_before);       
          printf("fsc.c >> Post Gap found is reg number %lu in .fsc file\n",n_gap_after);               
          /* Guardo el nuevo GAP que posee los tres espacios sumados */
-         fseek(f_fsc,sizeof(EMUFS_FSC)*n_gap_before,0);
+         if (n_gap_before < n_gap_after) {
+               fseek(f_fsc,sizeof(EMUFS_FSC)*n_gap_before,0);
+               n_destination = sizeof(EMUFS_FSC)*n_gap_after;
+         }
+         else {
+               fseek(f_fsc,sizeof(EMUFS_FSC)*n_gap_after,0);
+               n_destination = sizeof(EMUFS_FSC)*n_gap_before;
+         }
       gap_new.n_marker = gap_before.n_marker;
          gap_new.n_freespace = gap_before.n_freespace + n_freespace + gap_after.n_freespace;
          fwrite(&gap_new,sizeof(EMUFS_FSC),1,f_fsc);
                
          /* Preparo el escenario para la movida de registros */
-         n_destination = sizeof(EMUFS_FSC)*n_gap_after;
-         n_source = n_destination+sizeof(EMUFS_FSC); /* Salteo el gap_after! */
+         n_source = n_destination+sizeof(EMUFS_FSC); /* Salteo el gap que elimino! */
          fseek(f_fsc,0,SEEK_END);
          n_filesize = ftell(f_fsc);
          n_reg_count = (n_filesize - n_source) / sizeof(EMUFS_FSC);
@@ -171,7 +177,7 @@ int emufs_fsc_agregar_gap(EMUFS *emu, EMUFS_OFFSET n_marker, EMUFS_FREE n_freesp
                ++n_moved;
          }
          fclose(f_fsc);
-         truncate(name_f_fsc, n_filesize - sizeof(EMUFS_FSC)); 
+         truncate(name_f_fsc, n_filesize - sizeof(EMUFS_FSC));
        }       
        
     return 0;
index d195835e054e544b7148291002bd4eba8e897b83..d2901d7bd1c7376bf0ac0b5a687f6331427b3708 100644 (file)
@@ -63,7 +63,7 @@ EMUFS_REG_ID emufs_tipo2_grabar_registro(EMUFS *efs, void *ptr, EMUFS_REG_SIZE n
        /* de manera segura (habra espacio suficiente) */
        n_FisicSize = sizeof(EMUFS_REG_ID)+sizeof(EMUFS_REG_SIZE)+n_RegSize;
        n_WrtOffset = emufs_fsc_buscar_lugar(efs,n_FisicSize,&n_FreeSpace);
-       printf("tipo2.c >> Searching FSC: Offset = %lu FSpace: %lu\n", n_WrtOffset, n_FreeSpace);
+       printf("tipo2.c >> Recording Reg > Searching FSC: Offset = %lu FSpace: %lu\n", n_WrtOffset, n_FreeSpace);
        
        /* Si no encontre un gap, entonces escribo el registro al final */
        if (n_WrtOffset == -1) {                       
@@ -126,7 +126,7 @@ int emufs_tipo2_borrar_registro(EMUFS *efs, EMUFS_REG_ID n_IdReg)
        else 
          return -1;
        
-       /* Obtenemos el Size del Registro en cuestion y hacemos un dummfill*/
+       /* Obtenemos el Size del Registro en cuestion y hacemos un dummyfill*/
        emufs_tipo2_get_regsize(efs,n_RegOffset,&n_RegSize);
        printf ("tipo2.c >> About to delete Reg %lu of Size: %lu\n",n_IdReg,n_RegSize);
        emufs_tipo2_dummyfill(efs,n_RegOffset,n_RegSize);
@@ -139,7 +139,7 @@ int emufs_tipo2_borrar_registro(EMUFS *efs, EMUFS_REG_ID n_IdReg)
        emufs_did_agregar(efs,n_IdReg); 
        
        /* Borramos el registro del indice de posiciones relativas */
-       /*emufs_idx_borrar(efs,n_IdReg);*/
+       emufs_idx_borrar(efs,n_IdReg);
        
        return(0);
 }
@@ -182,8 +182,8 @@ int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET n_RegPos, EMUFS_REG_SIZE n_Am
 {
     FILE *f_data;
        char name_f[255];
-    void *dummyfill;
-       void *ptr_cur;
+    char *dummyfill;
+       char *ptr_cur;
        unsigned long n_FillSize,n_count;
        
     /* Armamos el filename del archivo de datos */
@@ -205,4 +205,3 @@ int emufs_tipo2_dummyfill(EMUFS *efs, EMUFS_OFFSET n_RegPos, EMUFS_REG_SIZE n_Am
        
        return (0);
 }
-
index c57e56dc60ded222f8a4c6080cbaa612e55eb5d8..068b0304b714c4864fc87fbf38a341fd3b722dac 100644 (file)
@@ -72,18 +72,18 @@ int main(int argc, char *argv[])
        n7 = fp->grabar_registro(fp, h, 63, &err);
 
        /* Borramos un registro del medio */
-       /*printf("tipo2_main.c >> Borrando registro: %lu\n",n0);
-       fp->borrar_registro(fp, n0);
        printf("tipo2_main.c >> Borrando registro: %lu\n",n5);
-       fp->borrar_registro(fp, n5);    
+       fp->borrar_registro(fp, n5);            
        printf("tipo2_main.c >> Borrando registro: %lu\n",n1);
        fp->borrar_registro(fp, n1);
-       printf("tipo2_main.c >> Borrando registro: %lu\n",n7);
-       fp->borrar_registro(fp, n7);*/
+    printf("tipo2_main.c >> Borrando registro: %lu\n",n0);
+       fp->borrar_registro(fp, n0);
        printf("tipo2_main.c >> Borrando registro: %lu\n",n3);
-       fp->borrar_registro(fp, n3);
-       printf("tipo2_main.c >> Borrando registro: %lu\n",n6);
-       fp->borrar_registro(fp, n6);    
+       fp->borrar_registro(fp, n3);    
+       printf("tipo2_main.c >> Borrando registro: %lu\n",n7);
+       fp->borrar_registro(fp, n7);    
+       printf("tipo2_main.c >> Borrando registro: %lu\n",n4);
+       fp->borrar_registro(fp, n4);
          
        n8 = fp->grabar_registro(fp, d, 8, &err);
        printf("tipo2_main.c >> Id recuperado: %lu\n",n8);