Beispiel #1
0
        /**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);
        }