コード例 #1
0
        private bool Repetidos(CBloque b, CCubeta cubeta)
        {
            CBloque bAux;

            for (int i = 0; i < cubeta.getTamaño(); i++)
            {
                bAux = getArchivo().leerBloque(cubeta.getAtDirBloque(i), b.getTamBlo());

                if (bAux != null && (b.ComparateTo(bAux) == 0))
                    return (true);
            }
            return (false);
        }
コード例 #2
0
ファイル: CArchivo.cs プロジェクト: miguellgt/file-structures
        /**Se escribe un objeto cubeta de la organizacion Hash Dinamica en el archivo de trabajo
         * \param cubeta Cubeta a escribir, ya cuenta con su direccion en el archivo*/
        public void EscribeCubeta(CCubeta cubeta)
        {
            bw.BaseStream.Seek(cubeta.getDir(), SeekOrigin.Begin);

            bw.Write(cubeta.getDir());
            bw.Write(cubeta.getTamaño());
            bw.Write(cubeta.getNumDirBloques());
            bw.Write(cubeta.getPrefAsoc());

            for (int i = 0; i < cubeta.getTamaño(); bw.Write(cubeta.getAtDirBloque(i)), i++) ;
        }
コード例 #3
0
ファイル: CArchivo.cs プロジェクト: miguellgt/file-structures
        /**Lectura de una cubeta que se utilizara en el Hash Dinamica*/
        public CCubeta LeerCubeta(long dir)
        {
            CCubeta cubetaAux = null;

            if (dir != -1)
            {
                cubetaAux = new CCubeta();

                br.BaseStream.Seek(dir, SeekOrigin.Begin);

                cubetaAux.setDir(br.ReadInt64());
                cubetaAux.setTamaño(br.ReadInt32());
                cubetaAux.setNumDirBloques(br.ReadInt32());
                cubetaAux.setPrefAsoc(br.ReadInt32());

                cubetaAux.creaVectDirReg(cubetaAux.getTamaño());

                for (int i = 0; i < cubetaAux.getTamaño(); cubetaAux.setAtDirBloque(i, br.ReadInt64()), i++) ;
            }
            
            return (cubetaAux);
        }
コード例 #4
0
ファイル: FormOrg.cs プロジェクト: miguellgt/file-structures
        private CCubeta creaCubeta(CCubeta c, CArchivo aN, CArchivo aO)
        {
            CCubeta nuevaCub;
            CBloque bloqAux;

            nuevaCub = new CCubeta(aN.ENDF(), c.getTamaño());

            nuevaCub.setNumDirBloques(c.getNumDirBloques());
            nuevaCub.setPrefAsoc(c.getPrefAsoc());

            for (int i = 0; i < c.getTamaño(); i++)
                if ((bloqAux = aO.leerBloque(c.getAtDirBloque(i), tamBloque)) != null)
                {
                    bloqAux.setTamBlo(tamBloque);
                    nuevaCub.setAtDirBloque(i, aN.ENDF());
                    aN.EscribeBloque(bloqAux, aN.ENDF());
                }

            nuevaCub.setDir(aN.ENDF());
            aN.EscribeCubeta(nuevaCub);

            return (nuevaCub);
        }