/** Se ecribe una nueva entidad en el diccionario*/ public void escribeEntidad(CNodoEntidad nueva, long pos) { bw.BaseStream.Seek(pos, SeekOrigin.Begin); bw.Write(nueva.getApSigEnt()); bw.Write(nueva.getNombre()); bw.Write(nueva.getApCabListAtri()); bw.Write(nueva.getDir()); bw.Write(nueva.getApCabDatos()); }
/** Busca una entidad en el diccionario*/ public void buscaEntidad(ref CNodoEntidad auxEnt, string nameEnt) { auxEnt = listaEntidades.getCabListEnt(); while (auxEnt != null && auxEnt.getNombre().CompareTo(nameEnt) != 0) auxEnt = auxEnt.getSigEnt(); }
/**\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(); }