コード例 #1
0
 //metodo para modifiar atributo
 public void Modifica_atributo(long direccion, Atrib a)
 {
     stream = new FileStream(GS_path, FileMode.Open, FileAccess.Write);
     writer = new BinaryWriter(stream);
     stream.Seek(direccion, SeekOrigin.Begin);
     writer.Write(a.GS_nombre);
     writer.Write(a.GS_tipo);
     writer.Write(a.GS_longitud);
     writer.Write(a.GS_dir_atributo);
     writer.Write(a.GS_indice);
     writer.Write(a.GS_dir_indice);
     writer.Write(a.GS_dir_sig_atrib);
     writer.Close();
     writer.Dispose();
     stream.Close();
     stream.Dispose();
 }
コード例 #2
0
        //metodo para insertar atributo en el archivo
        public void insertaAtributo(Atrib a)
        {
            long tam_archivo = Tam_archivo();

            stream = new FileStream(GS_path, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
            writer = new BinaryWriter(stream);
            stream.Seek(tam_archivo, SeekOrigin.Begin);
            writer.Write(a.GS_nombre);
            writer.Write(a.GS_tipo);
            writer.Write(a.GS_longitud);
            writer.Write(a.GS_dir_atributo);
            writer.Write(a.GS_indice);
            writer.Write(a.GS_dir_indice);
            writer.Write(a.GS_dir_sig_atrib);
            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
        //lectura del archivo
        private void leerArchivo()
        {
            arch.GS_path = arch.GS_path;
            long cab = ent_[index_entidad].GS_Dir_atributos;

            ent_[index_entidad].GS_atrib.Clear();
            Stream       s = new FileStream(arch.GS_path, FileMode.Open, FileAccess.Read);
            BinaryReader r = new BinaryReader(s);

            try
            {
                s.Seek(cab, SeekOrigin.Begin);
                while (cab != -1)
                {
                    Atrib aux = new Atrib();
                    aux.GS_nombre        = r.ReadChars(30);
                    aux.GS_tipo          = r.ReadChar();
                    aux.GS_longitud      = r.ReadInt16();
                    aux.GS_dir_atributo  = r.ReadInt64();
                    aux.GS_indice        = r.ReadInt16();
                    aux.GS_dir_indice    = r.ReadInt64();
                    aux.GS_dir_sig_atrib = r.ReadInt64();
                    cab = aux.GS_dir_sig_atrib;
                    if (cab != -1)
                    {
                        s.Seek(cab, SeekOrigin.Begin);
                    }
                    ent_[index_entidad].GS_atrib.Add(aux);
                }
            }
            catch { MessageBox.Show("NO EXISTEN DATOS PARA MOSTRAR"); }
            s.Close();
            s.Dispose();
            r.Close();
            r.Dispose();
            actualizaData();
        }