Esempio n. 1
0
        /**Lee la tabla hash estatica*/
        public CHash LeerTablaHash(long dir)
        {
            CHash tablaH = new CHash();
        
            br.BaseStream.Seek(dir, SeekOrigin.Begin);
            tablaH.setDir(br.ReadInt64());
            tablaH.setTamaño(br.ReadInt32());
            tablaH.setNumCubetas(br.ReadInt32());

            tablaH.creaVectorCubetas(tablaH.getTamaño());

            for (int i = 0; i < tablaH.getTamaño(); tablaH.setAtDirCubeta(i, br.ReadInt64()), i++) ;

            return (tablaH);
        }
Esempio n. 2
0
        /**Función de Mantenimiento para la Hash Estatica*/
        private void MantenimientoHashEstatica(CArchivo fileOri, CArchivo fileNew, CNodoEntidad ent, CNodoEntidad entC, int tamBloque)
        {
            CHash tablaHash, nuevaTablaHash;
            long cabTabla;

            cabTabla = ent.getApCabDatos();

            if (cabTabla != -1)
            {
                tablaHash = fileOri.LeerTablaHash(cabTabla);
                nuevaTablaHash = new CHash(fileNew.ENDF(), tablaHash.getTamaño());
                nuevaTablaHash.setNumCubetas(tablaHash.getNumCubetas());

                fileNew.EscribeTablaHash(nuevaTablaHash);

                for (int i = 0; i < tablaHash.getTamaño(); i++)
                    nuevaTablaHash.setAtDirCubeta(i, CopiarListaCubetasRec(tablaHash.getAtDirCubeta(i), fileOri, fileNew, tamBloque));

                fileNew.EscribeTablaHash(nuevaTablaHash);

                entC.setApCabDatos(nuevaTablaHash.getDir());
                fileNew.escribeEntidad(entC, entC.getDir());
            }
        }