/** Actualiza un atributo*/ public void modificaAtributo(string nameEnt, string nameAtri, CNodoAtributo nuevo) { CNodoEntidad nodoVert = null; CNodoAtributo nodoAtri; if (nameAtri.CompareTo(nuevo.getNombre()) != 0) { BajaAtributo(nameEnt, nameAtri); AltaAtributo(nuevo, nameEnt); } else { buscaEntidad(ref nodoVert, nameEnt); if (nodoVert != null) { AbrirArchivo(); nodoAtri = nodoVert.getCabListAtri(); while (nodoAtri != null && nodoAtri.getNombre().CompareTo(nameAtri) != 0) nodoAtri = nodoAtri.getSigAtri(); if (nodoAtri != null) { nodoAtri.setClavePrimaria(nuevo.getClave()); nodoAtri.setTipo(nuevo.getTipo()); nodoAtri.setNameTipo(nuevo.getNameTipo()); nodoAtri.setTamaño(nuevo.getTamaño()); nodoAtri.setEntRel(nuevo.getEntRel()); nodoAtri.setApEntRel(nuevo.getApEntRel()); nuevo.setDir(nodoAtri.getDir()); nuevo.setApSigAtri(nodoAtri.getApSigAtri()); escribeAtributo(nuevo, nuevo.getDir()); } CerrarArchivo(); } } }
/** Escribe un atributo en el archivo del diccionario*/ private void escribeAtributo(CNodoAtributo nuevo, long posA) { bw.BaseStream.Seek(posA, SeekOrigin.Begin); bw.Write(nuevo.getApSigAtri()); bw.Write(nuevo.getClave()); bw.Write(nuevo.getNombre()); bw.Write(nuevo.getTipo()); bw.Write(nuevo.getTamaño()); bw.Write(nuevo.getApEntRel()); bw.Write(nuevo.getDir()); }