Example #1
0
        public void altaIndiceSecundario(string llave, long direccion, string directorio)
        {
            bool band;

            band = this.tipo.Equals('C');
            Secundario secunadrio;

            if (this.dirIndice == -1)
            {
                int tam;
                tam        = MetodosAuxiliares.calculaTamIdxPrim(this.longitud);
                secunadrio = new Secundario(this.nombre, this.dirIndice, tam, this.longitud, -1, band);
                this.indices.Add(secunadrio);
                this.dirIndice = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                this.grabaDireccionesSecundario(directorio, secunadrio);
                for (int i = 0; i < secunadrio.Direcciones.Length; i++)
                {
                    secunadrio.Direcciones[i] = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                    this.grabaApuntadoresSecundario(directorio, secunadrio, secunadrio.Direcciones[i], i);
                }
            }
            int idx;

            secunadrio = ((Secundario)this.indices.First());
            idx        = secunadrio.alta(llave, direccion);
            this.grabaApuntadoresSecundario(directorio, secunadrio, secunadrio.Direcciones[idx], idx);
            this.grabaDireccionesSecundario(directorio, secunadrio);
        }
Example #2
0
        public void altaHash(string llave, long direccion, string directorio)
        {
            bool band;

            band = false;
            band = this.tipo.Equals('C');
            if (this.dirIndice == -1)
            {
                HashEstatica hash;
                hash = new HashEstatica(this.nombre, this.dirIndice, this.longitud, -1, band);
                this.indices.Add(hash);
                this.dirIndice = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                this.grabaDireccionesHash(directorio, hash);
                for (int i = 0; i < hash.Direcciones.Length; i++)
                {
                    hash.Direcciones[i] = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
                    this.grabaApuntadoresHash(directorio, hash, hash.Direcciones[i], i);
                }
                this.grabaDireccionesHash(directorio, hash);
            }
            int idx;

            idx = ((HashEstatica)this.indices.First()).alta(band, MetodosAuxiliares.truncaCadena(llave).ToCharArray(), this.longitud, direccion);
            this.grabaApuntadoresHash(directorio, ((HashEstatica)this.indices.First()), ((HashEstatica)this.indices.First()).Direcciones[idx], idx);
        }
Example #3
0
        public void altaIndicePrimario(string llave, long dir, string directorio)
        {
            int    longitud;
            long   dirIdx;
            Indice indice;

            dirIdx   = -1;
            longitud = MetodosAuxiliares.calculaTamIdxPrim(this.longitud);
            dirIdx   = MetodosAuxiliares.ultimaDireccionDeArchivo(directorio);
            if (this.indices.Count == 0)
            {
                indice = new Primario(this.nombre, dirIdx, longitud, -1);
                ((Primario)indice).alta(llave, dir);
                this.indices.Add(indice);
            }
            else
            {
                bool band;
                band = false;
                foreach (Indice idx in this.indices)
                {
                    if (((Primario)idx).EspacioLibre != -1)
                    {
                        ((Primario)idx).alta(llave, dir);
                        band = true;
                        break;
                    }
                }
                if (!band)
                {
                    indice = new Primario(this.nombre, dirIdx, longitud, -1);
                    ((Primario)indice).alta(llave, dir);
                    this.indices.Last().DirSig = indice.DirAct;
                    this.indices.Add(indice);
                }
            }
            this.dirIndice = this.indices.First().DirAct;
            foreach (Indice idx in this.indices)
            {
                this.grabaIndicePrimario((Primario)idx, directorio);
            }
        }