]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Algunos cambios.
authorRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 31 Mar 2004 20:50:21 +0000 (20:50 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 31 Mar 2004 20:50:21 +0000 (20:50 +0000)
   Saco cosas que no deben ir. El tipo de archivo nunca sabe que dato
 esta trabajando. Solo debe saber el tamaño de un registro y hacer
 una copia bit a bit del registro sobre un puntero que se le pasa.

 ver funcion memcpy y memncpy

tipo3/main.c
tipo3/param_cte.c
tipo3/param_cte.h

index f6ab0bd990c1c731bc6b94160576e502c6b0ec1c..40418e41e21bb6c84844a87f067370a7ead0245c 100644 (file)
@@ -16,4 +16,5 @@ ID_aux = (d << 0 ) | (c << 8) |  ( b << 16) | (a << 24);
 
 printf("el numero es = %x\n", ID_aux);
 
+       return 0;
 }
index 9a05adb1a589ad0e1451b5ce70a7330c69292607..896d72ad35402e6dddfad5e8d788f1efb6e7359e 100644 (file)
@@ -9,10 +9,9 @@ FILE* reg_exist;
 /** Leo un registro del archivo, devuelve cero si no lo encuentra.**/
 int leer_registro(int ID, void *str, unsigned long tam)
 {
-       struct param_cte_t dato;
        char* bloque = (char*)malloc(tam);
        char ID_char[4];
-       int block, i, ID_aux, a, b, c, d;
+       int block, i, ID_aux, a, b, c, d, tamanio_registro;
        int iterador = 0;
        /* tengo que crear los archivos de indice antes de usarlos!!!!!!!!!*/
        if ( (block_reg = fopen("block_reg.dat","a+")) == NULL )
@@ -31,17 +30,24 @@ int leer_registro(int ID, void *str, unsigned long tam)
        if (leer_bloque(block,bloque,tam)==-1) 
                return -1; /*No se pudo leer el bloque*/
        
-       while ( iterador != (tam/sizeof(dato)) ){
+       while ( iterador != (tam/tamanio_registro) ){
                a = bloque[0+iterador];
                b = bloque[1+iterador];
                c = bloque[2+iterador];
                d = bloque[3+iterador];
                ID_aux = (d << 0 ) | (c << 8) |  ( b << 16) | (a << 24);
                if ( ID_aux == ID ){
-                               copiar(dato, (param_cte_t**)&str);
+                               /* TODO : la copia es byte a byte. Al archivo
+                                * no le importa que tipo de estructura es
+                                */
+                               //copiar(dato, &str);
                                break;
                        }
-               iterador += sizeof(dato);       
+               // FIXME : El tamaño del registro es lo que debo tener
+               // aca, no el tamaño del tipo de dato.
+               //
+               // Cuando se crea el archivo se le da el tamaño de un registro
+               //iterador += sizeof(dato);     
        }               
        fclose(block_reg);              
        fclose(block_free);
@@ -88,24 +94,6 @@ int buscar_registro(int ID)
        return -1;
 }
 
-int copiar(struct param_cte_t dato, param_cte_t** str)
-{
-       if ((*str) == NULL) return 0;
-       (*str)->ID == dato.ID;  
-       strcpy((*str)->num_fac,dato.num_fac);
-       strcpy((*str)->fecha_emision,dato.fecha_emision);
-       strcpy((*str)->fecha_vto,dato.fecha_vto);
-       strcpy((*str)->num_fac,dato.num_fac);
-       strcpy((*str)->num_remito,dato.num_remito);
-       strcpy((*str)->estado,dato.estado);
-       strcpy((*str)->FP,dato.FP);
-       strcpy((*str)->Por_DoI,dato.Por_DoI);
-       strcpy((*str)->num_cta_cte,dato.num_cta_cte);
-       strcpy((*str)->num_cheque,dato.num_cheque);
-       (*str)->texto = dato.texto;
-       return 1;
-}
-       
 int leer_bloque(int ID, void* str, unsigned long tam)
 {
        
index b9bcba2bba4069843702f7b45a67080465098436..136b8eca25cb766a52fd37600d854f85f0794087 100644 (file)
@@ -5,21 +5,6 @@
 #include <string.h>
 #include "interface.h"
 
-typedef struct param_cte_t {
-       int ID;
-       char num_fac[9];
-       char fecha_emision[9];
-       char fecha_vto[9];
-       char num_remito[9];
-       char estado[2];
-       char FP[2];
-       char Por_DoI[6];
-       char num_cta_cte[6];
-       char num_cheque[19];
-       int texto; /*referencia al texto en otro archivo.*/
-};
-
-
 int leer_bloque(int ID, void *, unsigned long tam);
 
 int leer_registro(int ID, void *, unsigned long tam);
@@ -30,5 +15,4 @@ int existe_registro(int ID);
 
 int buscar_registro(int ID);
 
-int copiar(struct param_cte_t dato, param_cte_t** str);
 #endif