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
//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(); }
//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"); } }
//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(); }
//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(); }