Convertir cadena de caracteres en codigo Morse, y codigo ASCII



Una de las maneras en que podemos usar un diccionario es utilizando un archivo de texto plano y leerlo por medio de el StreamReader linea por linea buscando la letra que se desea traducir.

Para esto primero tenemos que definir cual sera nuestro diccionario, en este caso utilizaremos el que encontramos en Wikipedia, y lo copiamos en un texto plano con la extensión .txt ordenando la letra traducida en la linea siguiente después de la letra en mayúscula a traducir. Recuerda que leeremos linea por linea.

A continuación en Windows Forms, o WPF podemos crear una clase que  contenga los siguientes métodos

public List<string> ConvertStringToMorse()...
public List<string> ConvertStringToASCII()..
private string  ConvertirCharToMorse(char p) ..

el cual nos regresara como resultado una Lista de caracteres traducidos.

Asi que empezamos con un parámetro el cual sera la cadena a evaluar _cadena

//----------------------------------------------------------------------------------

        List<string> _texto_de_regreso = new List<string>();
            for (int x = 0; x < _cadena.Length; x++)
            {


                   string _morse = string.Empty;
                //Letra con index x de tipo char
                var _letra = _cadena[x];

               //Variable _letra convertida en código morse
               _morse = ConvertirCharToMorse(_letra);

                }
               _texto_de_regreso.Add(_morse + "  ");

            }
            return _texto_de_regreso;

//----------------------------------------------------------------------------------

Y he aquí es donde desciframos el metodo ConvertirCharToMorse(char p)
el cual va leyendo linea por linea hasta encontrar el carácter parámetro de entrada y cuando lo encuentra captura la linea siguiente para regresarla en el return.

//----------------------------------------------------------------------------------

String line;
            string _texto_de_regreso = string.Empty;
            string variable = Console.ReadLine();
            try
            {
                //Pass the file path and file name to the StreamReader constructor
                StreamReader sr = new StreamReader("C:\\Users/icalderond/Downloads/TP.txt");

                //Read the first line of text
                line = sr.ReadLine();
                //Continue to read until you reach end of file
                while (line != null)
                {
                    //write the lie to console window
                    if (line == p.ToString())
                    {
                        _texto_de_regreso = Convert.ToString(sr.ReadLine());
                        break;
                    }
                    //Read the next line
                    line = sr.ReadLine();
                }

                //close the file
                sr.Close();
            }
            catch (Exception e)
            {
                //Console.WriteLine("Exception: " + e.Message);
            }
            finally
            {
                //Console.WriteLine("Executing finally block.");
            }
            return _texto_de_regreso;
        }

//----------------------------------------------------------------------------------

Y finalmente les dejo el codigo para convertir los caracteres a código ASCII
//----------------------------------------------------------------------------------

 var _ascii = Encoding.ASCII.GetBytes(_letraATraducir.ToString())[0];

//----------------------------------------------------------------------------------

Comentarios

Publicar un comentario

Entradas populares