/**Se escribe una objeto cubeta para la organización Hash Estatica*/ public void EscribeCubetaHashEstatia(Cubeta cubeta) { bw.BaseStream.Seek(cubeta.getDir(), SeekOrigin.Begin); bw.Write(cubeta.getDir()); bw.Write(cubeta.getTamaño()); bw.Write(cubeta.getNumDirBloques()); bw.Write(cubeta.getSigCubeta()); for (int i = 0; i < cubeta.getTamaño(); bw.Write(cubeta.getAtDirBloque(i)), i++) ; }
private bool ExisteDireccion(Cubeta cubeta, int pos, CBloque b) { bool res = true; if (cubeta.getAtDirBloque(pos) == -1) { cubeta.incNumDirBloques(); getArchivo().EscribeCubetaHashEstatia(cubeta); cubeta.setAtDirBloque(pos, getArchivo().ENDF()); getArchivo().EscribeBloque(b, getArchivo().ENDF()); res = false; } return (res); }
private bool RegEliminado(Cubeta cubeta, CBloque b, int pC) { CBloque bAux; bool res = true; int posOrg = pC; while (true) { bAux = getArchivo().leerBloque(cubeta.getAtDirBloque(pC), b.getTamBlo()); if ( bAux != null && (b.ComparateTo(bAux) == 0)) break; else { pC++; if (pC == cubeta.getTamaño()) pC = 0; if (pC == posOrg) { res = false; break; } } } if (res == true) { cubeta.setAtDirBloque(pC, -1); cubeta.decNumDirBloques(); getArchivo().EscribeCubetaHashEstatia(cubeta); } return (res); }
private int Repetidos(CBloque b, Cubeta 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 (3); } return (1); }