/**Actualiza una entidad*/ public void ModificaEntidad(string nameEnt, CNodoEntidad nueva) { CNodoEntidad aux, nodoVerAux = null; CNodoAtributo auxAtri; buscaEntidad(ref nodoVerAux, nameEnt); nueva.setCabListAtri(nodoVerAux.getCabListAtri()); nueva.setApCabListAtri(nodoVerAux.getApCabListAtri()); AbrirArchivo(); nueva.setDir(fs.Length); aux = listaEntidades.getCabListEnt(); while (aux != null) { if (aux != nodoVerAux) { auxAtri = aux.getCabListAtri(); while (auxAtri != null) { if (auxAtri.getEntRel() == nodoVerAux) { auxAtri.setEntRel(nueva); auxAtri.setApEntRel(nueva.getDir()); escribeAtributo(auxAtri, auxAtri.getDir()); } auxAtri = auxAtri.getSigAtri(); } } aux = aux.getSigEnt(); } CerrarArchivo(); BajaEntidad(nameEnt); AltaEntidad(nueva); }
/**\brief Se inserta una entidad en el Diccionario de datos*/ public void AltaEntidad(CNodoEntidad nueva) { /** * \details * \param nueva Recibe un objeto de tipo entidad, que sera agregada a la lista de entidades * y posteriormente escrita en el diccionario **/ CNodoEntidad aux, ant = null; long ptrAnt, ptrAux, posCab; bool band = false; ptrAux = ptrAnt = -1; AbrirArchivo();//Se abren el archivo que contiene el diccionario de datos aux = listaEntidades.getCabListEnt(); ptrAux = leerCabecera(); while (aux != null) if ((aux.getNombre()).CompareTo(nueva.getNombre()) < 0) { ant = aux; ptrAnt = ptrAux; ptrAux = aux.getApSigEnt(); aux = aux.getSigEnt(); } else if ((aux.getNombre()).CompareTo(nueva.getNombre()) == 0) { band = true; break; } else break; if (aux == listaEntidades.getCabListEnt()) { if (band == false) { posCab = leerCabecera(); nueva.setApSigEnt(posCab); actCab(fs.Length); listaEntidades.setCabListEnt(nueva); } } else if (band == false) { nueva.setApSigEnt(ptrAux); ant.setApSigEnt(fs.Length); escribeEntidad(ant, ptrAnt); ant.setSigEnt(nueva); } if (band == false) { nueva.setDir(fs.Length); escribeEntidad(nueva, fs.Length); nueva.setSigEnt(aux); } numEntidades++; CerrarArchivo(); }