示例#1
0
        private void Grabar_Click(object sender, EventArgs e)
        {
            long cabezera = archivo.Dame_cabezera();

            Entidad ent = new Entidad();

            if (buscaRepetidos(EntidadText.Text))
            {
                ent.GS_NombreEntidad   = convierteNombre(EntidadText.Text);
                ent.GS_Dir_atributos   = -1;
                ent.GS_Dir_entidad     = archivo.Tam_archivo();
                ent.GS_Dir_datos       = -1;
                ent.GS_Dir_Sig_entidad = -1;

                if (cabezera == -1)
                {
                    archivo.Modifica_cab(ent.GS_Dir_entidad); entidad.Add(ent); archivo.insertaListaEntidad(ent);
                }

                else
                {
                    entidad.Add(ent);   ordena(); actualizaIndices();
                }


                actualizaData();
            }
            else
            {
                MessageBox.Show("NO SE PUEDEN REPETIR LOS CAMPOS");
            }
            EntidadText.Text = "";
        } //grabar entidad
示例#2
0
        //asignar  memoria
        public void  asignaMemoriaEnteros(Archivo arch, int posCubeta)
        {
            long dir_inicial = 0;

            dir_inicial   = arch.Tam_archivo();
            GS_dirInicial = dir_inicial;
            FileStream   stream = new FileStream(arch.GS_path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
            BinaryWriter writer = new BinaryWriter(stream);

            stream.Seek(dir_inicial, SeekOrigin.Begin);
            writer.Write(GS_dirInicial);
            writer.Write(dir_valor);
            writer.Write(valor_entero);
            writer.Write(dir_sig_cubeta); // escribe solamente en la 3a cubeta
            if (posCubeta < 2)
            {
                dir_final = dir_inicial + 36;
            }


            writer.Write(dir_final);

            writer.Close();
            writer.Dispose();
            stream.Close();
            stream.Dispose();
        }
示例#3
0
        //boton para almacenar atributo en el archivo
        private void Grabar_Click(object sender, EventArgs e)
        {
            Modificar.Enabled = true;
            Eliminar.Enabled  = true;

            Atrib a = new Atrib();

            if (Nombre.Text != "" && Tipo.Text != "" && Longitud.Text != "" && Clave.Text != "")
            {
                if (!busca_Repetidos(Nombre.Text))
                {
                    a.GS_nombre        = convierteNombre(Nombre.Text);
                    a.GS_tipo          = type;
                    a.GS_longitud      = Convert.ToInt16(Longitud.Text);
                    a.GS_dir_atributo  = arch.Tam_archivo();
                    a.GS_indice        = Convert.ToInt16(Clave.SelectedItem);
                    a.GS_dir_indice    = -1;
                    a.GS_dir_sig_atrib = -1;
                    ent_[index_entidad].GS_atrib.Add(a);
                    if (ent_[index_entidad].GS_atrib.Count == 1)
                    {
                        ent_[index_entidad].GS_Dir_atributos = a.GS_dir_atributo;
                        arch.Modifica_entidad(ent_[index_entidad].GS_Dir_entidad, ent_[index_entidad]);
                    }

                    arch.insertaAtributo(a);
                    acomodaDirecciones();
                    actualizaData();
                    borrarDatos();
                }
                else
                {
                    MessageBox.Show("EL CAMPO YA EXISTE");
                }
            }
            else
            {
                MessageBox.Show("NO SE PUEDEN DEJAR CAMPOS VACIOS");
            }
        }
示例#4
0
        //Asignar memoria a un cajon en el archivo
        public void asignaMemoriaCajon(Archivo arch, int i)
        {
            long dir_inicial = 0;

            dir_inicial   = arch.Tam_archivo();
            GS_dirInicial = dir_inicial;
            FileStream   stream = new FileStream(arch.GS_path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
            BinaryWriter writer = new BinaryWriter(stream);

            stream.Seek(dir_inicial, SeekOrigin.Begin);
            writer.Write(GS_dirInicial);
            writer.Write(GS_dirCubeta);
            if (i < 2)
            {
                GS_dirFinal = GS_dirInicial + 24;
            }
            writer.Write(GS_dirFinal);
            writer.Close();
            writer.Dispose();
            stream.Close();
            stream.Dispose();
        }
示例#5
0
        //asigna memoria en archivo
        public void AsignaMemoria(Archivo arch)
        {
            long dir_inicial = 0;

            dir_inicial  = arch.Tam_archivo();
            GS_direccion = dir_inicial;
            FileStream   stream = new FileStream(arch.GS_path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
            BinaryWriter writer = new BinaryWriter(stream);

            stream.Seek(dir_inicial, SeekOrigin.Begin);
            writer.Write(GS_direccion);
            writer.Write(GS_tipo);
            foreach (Nodo n in GS_nodos)
            {
                writer.Write(n.GS_dirSiguiente);
                writer.Write(n.GS_valor);
            }

            writer.Write(GS_dirSiguiente);
            writer.Close();
            writer.Dispose();
            stream.Close();
            stream.Dispose();
        }