Пример #1
0
 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;
         }
     }
 }
Пример #2
0
        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);
                }
            }
        }