public void Elimina_Entidad(CEntidad ent_remove) { foreach (CEntidad ent in Lista_Ent) { if (cab == ent_remove.Ptr_entidad) { Lista_Ent.Remove(ent_remove); if (Lista_Ent.Count == 0) { long tamañoArch = archivo.dimeTamArch(Name); if (tamañoArch > 0) { Cab = tamañoArch; archivo.modifica_Cab(Cab, Name); } else { Cab = -1; archivo.modifica_Cab(Cab, Name); } } else { Cab = lista_Ent[0].Ptr_entidad; archivo.modifica_Cab(Cab, Name); } break; } if (ent.Prt_ent_sig == ent_remove.Ptr_entidad) { ent.Prt_ent_sig = ent_remove.Prt_ent_sig; archivo.modifica_ent_sig(ent.Ptr_entidad, Name, ent); Lista_Ent.Remove(ent_remove); break; } } }
public void leeEntidad(long dir_apuntador, string nameArch) { if (dir_apuntador != -1) { try { FileStream file = new FileStream(nameArch, FileMode.Open, FileAccess.Read); file.Seek(dir_apuntador, SeekOrigin.Current); using (BinaryReader leer = new BinaryReader(file)) { CEntidad entidadAux = new CEntidad(); entidadAux.Nombre = leer.ReadString(); entidadAux.Prt_ent_sig = leer.ReadInt64(); entidadAux.Ptr_atrib = leer.ReadInt64(); entidadAux.Ptr_datos = leer.ReadInt64(); entidadAux.Ptr_entidad = leer.ReadInt64(); //Console.Write("vamos a buscar atributos \n"); if (entidadAux.Ptr_atrib != -1) { Console.Write(entidadAux.Ptr_atrib + " Si encontre atributos \n"); file.Close(); leeAtributos(entidadAux.Ptr_atrib, nameArch, entidadAux); } Lista_Ent.Add(entidadAux); leeEntidad(entidadAux.Prt_ent_sig, nameArch); } file.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }