private void button1_Click(object sender, EventArgs e) //leer archivo .txt { var fileContent = string.Empty; var filePath = string.Empty; try { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.InitialDirectory = "c:\\"; openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; string line = ""; int counter = 0; char delimitador = ','; if (openFileDialog.ShowDialog() == DialogResult.OK) { filePath = openFileDialog.FileName; textBox2.Text = filePath.ToString(); System.IO.StreamReader file = new System.IO.StreamReader(filePath); while ((line = file.ReadLine()) != null) { counter++; //contador de la línea if (counter == 1) //primera línea=cantidad de estados { estados = Convert.ToInt32(line); for (int i = 1; i <= estados; i++) { Estado estado = new Estado(i); listaestados.Add(estado); } } if (counter == 2) //segunda línea estado inicial { estadoInicial = Convert.ToInt32(line); } if (counter == 3) //tercera línea = alfabeto de la máquina { alfabeto.AddRange(line.Select(c => c.ToString())); } else if (counter > 3) //resto de líneas son las transiciones { string[] trans = line.Split(delimitador); Transicion transicion = new Transicion(Convert.ToInt32(trans[0]), trans[1], Convert.ToInt32(trans[2]), trans[3], trans[4]); transiciones.Add(transicion); } } file.Close(); //cierra el archivo button2.Enabled = true; //permite ingresar entrada button1.Enabled = false; //desactiva el botón de archivo } } } catch { MessageBox.Show("Error en la lectura del archivo", "ERROR"); //mensaje de error de archivo } }
private bool sigue(Transicion trans) //función para verificar si el proceso de lectura automático sigue o no { if (trans.Movimiento == "p" || trans.Movimiento == "P") { return(false); } else { return(true); } }