/**Función de Mantenimiento para la Hash Dinamica*/ private void MantenimientoHashDinamica(CArchivo fileOri, CArchivo fileNew, CNodoEntidad ent, CNodoEntidad entC, int tamBloque) { CTablaHashExt tH, nuevaTH; List<CCubeta> listCub; List<int> lE; CCubeta nuevaCub; long cabDatos; cabDatos = ent.getApCabDatos(); if (cabDatos != -1) { tH = fileOri.LeerTablaHashExt(cabDatos); nuevaTH = creaTabla(tH); listCub = dameCubetas(tH); foreach (CCubeta c in listCub) { lE = buscaEntradas(tH, c); nuevaCub = creaCubeta(c, fileNew, fileOri); foreach (int i in lE) nuevaTH.getAtEntrada(i).setCubeta(nuevaCub); } foreach (CEntrada e in nuevaTH.getListEntradas()) { e.setDir(fileNew.ENDF()); fileNew.EscribeEntrada(e); } for (int i = 0; i < nuevaTH.getListEntradas().Count - 1; i++) { nuevaTH.getAtEntrada(i).setSigEntrada(nuevaTH.getAtEntrada(i + 1).getDir()); fileNew.EscribeEntrada(nuevaTH.getAtEntrada(i)); } nuevaTH.setCabEntradas(nuevaTH.getAtEntrada(0).getDir()); nuevaTH.setDir(fileNew.ENDF()); fileNew.EscribeTablaHashExt(nuevaTH); entC.setApCabDatos(nuevaTH.getDir()); fileNew.escribeEntidad(entC,entC.getDir()); } }