/** \brief Alta de un registro*/ public bool AltaOS() { long ptrAux, ptrAnt = 0; bool res = false; bool band = true; CBloque bloqueAux, bloqueAnt = null; getArchivo().AbrirArchivo(); ptrAux = ent.getApCabDatos(); //Se busca en la ubicacion del bloque en el archivo. while (ptrAux != -1 && band == true && res == false) { bloqueAux = getArchivo().leerBloque(ptrAux, tamBloque); bloqueAux.setTamBlo(tamBloque); switch(bloque.ComparateTo(bloqueAux)) { case -1: res = band = true; break; case 0: res = band = false; break; case 1: ptrAnt = ptrAux; bloqueAnt = bloqueAux; ptrAux = bloqueAux.getSigBlo(); break; } } if (band == true)//No hay bloques repetidos { if (ptrAux == ent.getApCabDatos())//Se insertara en la primera posición { ent.setApCabDatos(getArchivo().ENDF()); getArchivo().escribeEntidad(ent, ent.getDir()); } else { bloqueAnt.setSigBlo(getArchivo().ENDF()); getArchivo().EscribeBloque(bloqueAnt, ptrAnt); } } bloque.setSigBlo(ptrAux); getArchivo().EscribeBloque(bloque, getArchivo().ENDF()); getArchivo().CerrarArchivo(); return (res); }