//Se modifica los campos seleccionados del atributo private void ModifAtrib_Click(object sender, EventArgs e) { //Auxiliar del nombre del atributo seleccionado del combo box string aux = ListaAtributos.Text; //Ciclo para acceder a la lista de entidades foreach (Entidad Ent in LEntidades) { //Auxiliar para el tamaño de la lista de atributos de la entidad int count = Ent.LAtributo1.Count; //Ciclo para acceder a la lista de atributos for (int i = 0; i < count; i++) { //Condicional para encontrar el nombre seleccionado del combo box if (Ent.LAtributo1[i].NA == aux) { //Varialbes auxiliares para los campos a modificar string auxNom = Ent.LAtributo1[i].NA; char TDato = Ent.LAtributo1[i].TD; int TIndice = Ent.LAtributo1[i].TI; int LDato = Ent.LAtributo1[i].LD; //Metodo que realiza el cambio de información ValidaCampos(ref TDato, ref TIndice, ref LDato, ref auxNom); //Se guarda la nueva información en los campos correspondientes de la entidad Ent.LAtributo1[i].NA = auxNom; Ent.LAtributo1[i].ConvierteChar(); Ent.LAtributo1[i].TD = TDato; Ent.LAtributo1[i].TI = TIndice; Ent.LAtributo1[i].LD = LDato; break; } } } //Se limpian los campos que se llenaron para hacer modificaciones de un atributo NuevoAtrib.Clear(); CBDatos.Text = ""; CBIndice.Text = ""; txtTDato.Clear(); ListaAtributos.Text = ""; ListNombres.Text = ""; Actualiza(); //Se llama al método que hará visualizar la información de los atributos en el DatGrid DirSigAtrib(); }
//Se busca el atributo que se va a eliminar private void ElimAtrib_Click(object sender, EventArgs e) { //Auxiliar del nombre de la entidad seleccionada del combo box string aux = ListaAtributos.Text; //Ciclo para acceder a a lista de entidades foreach (Entidad Ent in LEntidades) { //Auxiliar para el tamaño de la lista de atributos de cada entidad int count = Ent.LAtributo1.Count; //Ciclo para acceder a la lista de atributos de una entidad for (int i = 0; i < count; i++) { //Condición para encontrar el nombre del atributo seleccionado en el combo box if (Ent.LAtributo1[i].NA == aux) { //Se elimina de la lista Ent.LAtributo1.RemoveAt(i); break; } } //Se actualiza el campo de dirección de atributo que tiene la entidad if (Ent.LAtributo1.Count > 0) { Ent.DA = Ent.LAtributo1[0].DA; } //Ent.DA = Ent.LAtributo1[Ent.LAtributo1.Count-1].DA; } Actualiza(); //Se limpian los campos que fueron llenados para el atributo NuevoAtrib.Clear(); CBDatos.Text = ""; CBIndice.Text = ""; txtTDato.Clear(); ListaAtributos.Text = ""; ListNombres.Text = ""; //Se llama al método que hará visualizar la información de los atributos en el DatGrid DirSigAtrib(); }
//Se agrega un nuevo atributo a la entidad seleccionada private void AgregarAtrib_Click(object sender, EventArgs e) { //Se abre el archivo seleccionado fs = File.Open(NomArch, FileMode.Open, FileAccess.Write); TamArch = fs.Length; //Auxiliar que guarda el tamaño del archivo //int TamAtrib = EntModificar.LAtributo1.Count; TamArch = fs.Length; //Variable que guarda el tamaño del archivo EncuentraEntidad(); //Método que encuentrá la variable a la que se le asignarán los atributos char TDato = Convert.ToChar(CBDatos.Text); //auxiliar que guarda el tipo de dato int TIndice = Convert.ToInt32(CBIndice.Text); //auxiliar qie guarda el tipo de indice int LDato = Convert.ToInt32(txtTDato.Text); //auxiliar que guarda la logitud de dato //validación para que el nombre del atributo no este vacio if (NuevoAtrib.Text != "" || NuevoAtrib.Text != " ") { //auxiliar que convierte el nombre en arreglo de char char[] aux = NuevoAtrib.Text.ToCharArray(); //Validación del nombre del atributo, que sea menor o igual a 30 caracteres if (aux.Length <= 30) { //Se posiciona al final del archivo fs.Seek(TamArch, SeekOrigin.Begin); bw = new BinaryWriter(fs); //Se crea un binarywriter //Se crea un nuevo atributo atributo = new Atributo(NuevoAtrib.Text, TamArch, TDato, LDato, TIndice, -1, -1); bool EncAtrib = EntModificar.EncuentraAtributo(atributo.NA); if (EncAtrib == true) { MessageBox.Show("No pueden existir dos atributos con el mismo nombre"); fs.Close(); } else { //Se convierte el nombre del atributo en arreglo de char atributo.ConvierteChar(); EntModificar.AgregaAtributo(atributo); //Se agrega el atributo a la lista de atributos de la entidad EntModificar.DA = EntModificar.LAtributo1[0].DA; //Se asigna la dirección del atributo al campo de dirección de atributo de la entidad atributo.EscribeAtributo(bw); //se escribe los datos del atributo en el archivo fs.Close(); //Se cierra el archivo AgregaAtribDG(); //Se muestra la información del atributo en el DatGrid } } else { MessageBox.Show("El nombre del atributo no debe de superar los 30 caracteres"); } } else { MessageBox.Show("Escribe el nombre del nuevo atributo"); } //Método que actualiza la información del archivo Actualiza(); //Método que agrega los nombres de los atributos al combo box ComboAtributo(); //Se limpian los campos que se rellenan con la información del atributo ListNombres.Text = ""; CBDatos.Text = ""; CBIndice.Text = ""; NuevoAtrib.Clear(); txtTDato.Clear(); }