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
//boton para actualizar los datos del atributo private void Actualiza_Click(object sender, EventArgs e) { try { ent_.Clear(); long cab = arch.Dame_cabezera(); Stream s = new FileStream(arch.GS_path, FileMode.Open, FileAccess.Read); BinaryReader r = new BinaryReader(s); s.Seek(cab, SeekOrigin.Begin); while (cab != -1) { long diratrib, direntidad, dirDatos, dirnext; char[] c; Entidad eaux = new Entidad(); c = r.ReadChars(30); // MessageBox.Show("nombre " + new string(c)); diratrib = r.ReadInt64(); // MessageBox.Show("dir atributo" + diratrib.ToString()); direntidad = r.ReadInt64(); // MessageBox.Show("dir entidad " + direntidad.ToString()); dirDatos = r.ReadInt64(); // MessageBox.Show("dir datos " + dirDatos.ToString()); dirnext = r.ReadInt64(); //MessageBox.Show("dir next " + dirnext.ToString()); eaux.GS_NombreEntidad = c; eaux.GS_Dir_atributos = diratrib; eaux.GS_Dir_entidad = direntidad; eaux.GS_Dir_datos = dirDatos; eaux.GS_Dir_Sig_entidad = dirnext; cab = dirnext; if (cab != -1) { s.Seek(cab, SeekOrigin.Begin); } ent_.Add(eaux); } s.Close(); s.Dispose(); r.Close(); r.Dispose(); actualizaData(); } catch { } Entidad.Items.Clear(); foreach (Entidad en in ent_) { Entidad.Items.Add(new String(en.GS_NombreEntidad)); } actualizaData(); }