private void txtExpresion_Validating(object sender, CancelEventArgs e) { string[] symbols = txtSymbolsIN.Text.Split(';'); string Value = txtExpresion.Text.Replace(";", "").Trim(); foreach (var item in symbolsIn) { Value = Value.Replace(item.Symbol, "").Trim(); } if (!string.IsNullOrEmpty(Value)) { MessageBox.Show("Debe digitar una expresión con los simbolos de entrada", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } char[] Valores = txtExpresion.Text.Replace(";", "").Trim().ToCharArray(); itemGrid itemGrid = new itemGrid(); string TipoVal = string.Empty; for (int y = 0; y < Valores.Length; y++) { if (y == 0) { TipoVal = VerificacionRecursiva(txtStatesBegin.Text.Replace(";", ""), Valores[y].ToString()); } else { TipoVal = VerificacionRecursiva(TipoVal, Valores[y].ToString()); } } itemGrid = AFD.Where(afd => afd.State == TipoVal).FirstOrDefault(); if (itemGrid.Result == 1) { MessageBox.Show("ACEPTA"); } else { MessageBox.Show("RECHAZA"); } }
private string VerificacionRecursiva(string State, string Value) { string val = string.Empty; itemGrid itemGrid = AFD.Where(inicio => inicio.State == State).FirstOrDefault(); string TipoVal = string.Empty; TipoVal = symbolsIn.Where(s => s.Symbol == Value.ToString()).FirstOrDefault().Value; switch (TipoVal) { case "Value1": val = itemGrid.Value1; break; case "Value2": val = itemGrid.Value2; break; default: break; } return(val); }
private string AsignarValores(string state, int Value) { itemGrid ret = new itemGrid(); string value = string.Empty; string Valor = string.Empty; foreach (string states in state.Split(';').OrderBy(x => x)) { Valor = string.Empty; ret = transitions.Where(t => t.State == states).FirstOrDefault(); value += value != string.Empty ? ";" : ""; switch (Value) { case 1: Valor = ret.Value1; break; case 2: Valor = ret.Value2; break; case 3: Valor = ret.Value3; break; case 4: Valor = ret.Value4; break; case 5: Valor = ret.Value5; break; case 6: Valor = ret.Value6; break; case 7: Valor = ret.Value7; break; case 8: Valor = ret.Value8; break; case 9: Valor = ret.Value9; break; case 10: Valor = ret.Value10; break; case 11: Valor = ret.Value11; break; case 12: Valor = ret.Value12; break; case 13: Valor = ret.Value13; break; case 14: Valor = ret.Value14; break; case 15: Valor = ret.Value15; break; case 16: Valor = ret.Value16; break; case 17: Valor = ret.Value17; break; case 18: Valor = ret.Value18; break; case 19: Valor = ret.Value19; break; case 20: Valor = ret.Value20; break; default: Valor = "ERROR"; break; } value += Valor; } return(value == string.Empty ? "ERROR" : value); }
private void btnNuevaTablaTransicion_Click(object sender, EventArgs e) { itemGrid ret = new itemGrid(); foreach (itemGrid item in AFD) { string value = string.Empty; if (item.State != string.Empty) { if (!item.State.Contains(";")) { ret = transitions.Where(t => t.State == item.State).FirstOrDefault(); item.Value1 = ret.Value1 == string.Empty ? "ERROR" : ret.Value1; item.Value2 = ret.Value2 == string.Empty ? "ERROR" : ret.Value2; item.Value3 = ret.Value3 == string.Empty ? "ERROR" : ret.Value3; item.Value4 = ret.Value4 == string.Empty ? "ERROR" : ret.Value4; item.Value5 = ret.Value5 == string.Empty ? "ERROR" : ret.Value5; item.Value6 = ret.Value6 == string.Empty ? "ERROR" : ret.Value6; item.Value7 = ret.Value7 == string.Empty ? "ERROR" : ret.Value7; item.Value8 = ret.Value8 == string.Empty ? "ERROR" : ret.Value8; item.Value9 = ret.Value9 == string.Empty ? "ERROR" : ret.Value9; item.Value10 = ret.Value10 == string.Empty ? "ERROR" : ret.Value10; item.Value11 = ret.Value11 == string.Empty ? "ERROR" : ret.Value11; item.Value12 = ret.Value12 == string.Empty ? "ERROR" : ret.Value12; item.Value13 = ret.Value13 == string.Empty ? "ERROR" : ret.Value13; item.Value14 = ret.Value14 == string.Empty ? "ERROR" : ret.Value14; item.Value15 = ret.Value15 == string.Empty ? "ERROR" : ret.Value15; item.Value16 = ret.Value16 == string.Empty ? "ERROR" : ret.Value16; item.Value17 = ret.Value17 == string.Empty ? "ERROR" : ret.Value17; item.Value18 = ret.Value18 == string.Empty ? "ERROR" : ret.Value18; item.Value19 = ret.Value19 == string.Empty ? "ERROR" : ret.Value19; item.Value20 = ret.Value20 == string.Empty ? "ERROR" : ret.Value20; } else { item.Value1 = AsignarValores(item.State, 1); item.Value2 = AsignarValores(item.State, 2); item.Value3 = AsignarValores(item.State, 3); item.Value4 = AsignarValores(item.State, 4); item.Value5 = AsignarValores(item.State, 5); item.Value6 = AsignarValores(item.State, 6); item.Value7 = AsignarValores(item.State, 7); item.Value8 = AsignarValores(item.State, 8); item.Value9 = AsignarValores(item.State, 9); item.Value10 = AsignarValores(item.State, 10); item.Value11 = AsignarValores(item.State, 11); item.Value12 = AsignarValores(item.State, 12); item.Value13 = AsignarValores(item.State, 13); item.Value14 = AsignarValores(item.State, 14); item.Value15 = AsignarValores(item.State, 15); item.Value16 = AsignarValores(item.State, 16); item.Value17 = AsignarValores(item.State, 17); item.Value18 = AsignarValores(item.State, 18); item.Value19 = AsignarValores(item.State, 19); item.Value20 = AsignarValores(item.State, 20); } } else { item.State = "ERROR"; item.Value1 = "ERROR"; item.Value2 = "ERROR"; } if (txtAcceptations.Text.Contains(item.State)) { item.Result = 1; } } Limpiar(); dataGridView2.Columns.Clear(); dataGridView2.AutoGenerateColumns = false; DataGridViewCell cell = new DataGridViewTextBoxCell(); DataGridViewColumn column = new DataGridViewColumn { HeaderText = "Estados", DataPropertyName = "State", Name = "State", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView2.Columns.Add(column); int i = 0; foreach (var item in symbolsIn) { i++; column = new DataGridViewColumn { DataPropertyName = $"Value{i}", Name = $"Value{i}", HeaderText = item.Symbol, Visible = true, ReadOnly = false, CellTemplate = cell }; dataGridView2.Columns.Add(column); } column = new DataGridViewColumn { HeaderText = "0: Rechaza / 1: Acepta", DataPropertyName = "Result", Name = "Result", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView2.Columns.Add(column); dataGridView2.DataSource = AFD; btnGraficar.Enabled = true; }
private void Llenar(string value) { itemGrid ret = new itemGrid(); itemGrid comparador = AFD.Where(a => a.State == value).FirstOrDefault(); if (comparador == null) { ret.State = value; if (ret.State != string.Empty) { if (ret.State.Contains(txtAcceptations.Text.Trim())) { ret.Result = 1; } } AFD.Add(ret); if (value.Contains(";")) { string nval = string.Empty; foreach (var item in value.Split(';')) { ret = transitions.Where(a => a.State == item).FirstOrDefault(); if (ret.Value1 != string.Empty) { nval += string.IsNullOrEmpty(nval) ? "" : ";"; nval += ret.Value1; } } Llenar(nval); nval = string.Empty; foreach (var item in value.Split(';')) { ret = transitions.Where(a => a.State == item).FirstOrDefault(); if (ret.Value2 != string.Empty) { nval += string.IsNullOrEmpty(nval) ? "" : ";"; nval += ret.Value2; } } Llenar(nval); nval = string.Empty; foreach (var item in value.Split(';')) { ret = transitions.Where(a => a.State == item).FirstOrDefault(); if (ret.Value3 != string.Empty) { nval += string.IsNullOrEmpty(nval) ? "" : ";"; nval += ret.Value3; } } Llenar(nval); nval = string.Empty; foreach (var item in value.Split(';')) { ret = transitions.Where(a => a.State == item).FirstOrDefault(); if (ret.Value4 != string.Empty) { nval += string.IsNullOrEmpty(nval) ? "" : ";"; nval += ret.Value4; } } Llenar(nval); } else { ret = transitions.Where(a => a.State == value).FirstOrDefault(); if (ret != null) { Llenar(ret.Value1); Llenar(ret.Value2); Llenar(ret.Value3); Llenar(ret.Value4); } } } }
private void btnPaso01_Click(object sender, EventArgs e) { // recorrer matriz y crear la nueva con los estados de AFDN AFD = new List <itemGrid>(); int i = 0; string value = ""; // Primero en Linea // Verificar inicio value = txtStatesBegin.Text; itemGrid comparador = transitions.Where(a => a.State == value).FirstOrDefault(); itemGrid addAFD = new itemGrid { State = value }; AFD.Add(addAFD); Type type = typeof(itemGrid); System.Reflection.PropertyInfo[] listaPropiedades = type.GetProperties(); foreach (System.Reflection.PropertyInfo propiedad in listaPropiedades) { if (propiedad.Name != "State" && propiedad.Name != "Result") { value = propiedad.GetValue(comparador).ToString(); if (value != string.Empty) { Llenar(value); } } } //Llenar(comparador.Value1); dataGridView2.Columns.Clear(); dataGridView2.AutoGenerateColumns = false; DataGridViewCell cell = new DataGridViewTextBoxCell(); DataGridViewColumn column = new DataGridViewColumn { HeaderText = "Estados", DataPropertyName = "State", Name = "State", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView2.Columns.Add(column); i = 0; foreach (var item in symbolsIn) { i++; column = new DataGridViewColumn { DataPropertyName = $"Value{i}", Name = $"Value{i}", HeaderText = item.Symbol, Visible = true, ReadOnly = false, CellTemplate = cell }; dataGridView2.Columns.Add(column); } column = new DataGridViewColumn { HeaderText = "0: Rechaza / 1: Acepta", DataPropertyName = "Result", Name = "Result", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView2.Columns.Add(column); dataGridView2.DataSource = AFD; btnNuevaTablaTransicion.Enabled = true; }
private void btnGenerar_Click(object sender, EventArgs e) { transitions = new List <itemGrid>(); int i = 0; foreach (string item in states) { itemGrid ig = new itemGrid { State = item }; if (txtAcceptations.Text.Contains(ig.State)) { ig.Result = 1; } transitions.Add(ig); i++; } dataGridView1.Columns.Clear(); dataGridView2.Columns.Clear(); dataGridView1.AutoGenerateColumns = false; DataGridViewCell cell = new DataGridViewTextBoxCell(); DataGridViewColumn column = new DataGridViewColumn { HeaderText = "Estados", DataPropertyName = "State", Name = "State", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView1.Columns.Add(column); i = 0; foreach (var item in symbolsIn) { i++; column = new DataGridViewColumn { DataPropertyName = $"Value{i}", Name = $"Value{i}", HeaderText = item.Symbol, Visible = true, ReadOnly = false, CellTemplate = cell }; dataGridView1.Columns.Add(column); } column = new DataGridViewColumn { HeaderText = "0: Rechaza/ 1: Acepta", DataPropertyName = "Result", Name = "Result", Visible = true, ReadOnly = true, CellTemplate = cell }; dataGridView1.Columns.Add(column); dataGridView1.DataSource = transitions; btnValidacionAFND.Enabled = true; }