示例#1
0
        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
            }
        }
示例#2
0
 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);
     }
 }