コード例 #1
0
        static bool Cargar_Datos_Fichero(string nombrefichero)
        // Retorna "true" si la carga se ha producido sin problemas.Solo devuelve False si el fichero no existe o alguna de las palabras objetivo
        // tiene longitud inferior a 2 caracteres , pero realmentese pueden dar bastantes más casos que no están contemplados en esta solución.
        {
            StreamReader fich_datos;
            string       linealeida;
            int          filas, columnas;

            fich_datos = new StreamReader(nombrefichero);
            // Comprobar que el fichero exista.
            if (!System.IO.File.Exists(nombrefichero))
            {
                Console.WriteLine("No existe el fichero " + nombrefichero);
                return(false);
            }
            fich_datos = File.OpenText(nombrefichero);
            // Empezamos a leer el fichero y a cargar los valores necesarios.
            linealeida = fich_datos.ReadLine();
            // Cargamos el número de filas y columnas que vamos a necesitar.
            filas      = Convert.ToInt32(linealeida.Substring(0, linealeida.IndexOf(" ")));
            columnas   = Convert.ToInt32(linealeida.Substring(linealeida.IndexOf(" ")));
            sopa_filas = new string[filas];
            // Cargamos los caracteres de la matriz de la Sopa de Letras.
            for (int indice = 0; indice < filas; indice++)
            {
                linealeida = fich_datos.ReadLine();
                if (linealeida.Length < columnas) // Por si nos falta algún caracter en alguna de las líneas.
                {
                    Console.WriteLine("La línea " + indice + " no tiene el número de caracteres necesarios.");
                    fich_datos.Close();
                    return(false);
                }
                sopa_filas[indice] = linealeida.Substring(0, columnas); // Para que no tome más columnas de las debidas.
            }
            // Cargamos el número de palabras a buscar.
            linealeida        = fich_datos.ReadLine();
            palabras_objetivo = new ListaBuscar[Convert.ToInt32(linealeida)];
            for (int indice = 0; indice < palabras_objetivo.Length; indice++)
            {
                linealeida = fich_datos.ReadLine();
                if (linealeida.Length < 2)
                {
                    Console.WriteLine("No se admiten palabras de menos de dos caracteres.\n Se cancela el proceso.");
                    Console.ReadKey(); // Para hacer una pausa y dar tiempo a leer el mensaje.
                    return(false);
                }
                palabras_objetivo[indice] = new ListaBuscar(linealeida);
            }

            fich_datos.Close();
            return(true);
        }
コード例 #2
0
        static bool Cargar_Datos_Teclado()
        {
            // Primera línea de datos: Nº de filas y columnas de nuestra Sopa de letras.
            string linealeida;
            int    filas, columnas;

            Console.WriteLine("Introduce el número de FILAS y COLUMNAS de la Sopa de letras separados por un Espacio.");
            linealeida = Console.ReadLine();

            filas      = Convert.ToInt32(linealeida.Substring(0, linealeida.IndexOf(" ")));
            columnas   = Convert.ToInt32(linealeida.Substring(linealeida.IndexOf(" ")));
            sopa_filas = new string[filas];

            // Cargar los caracteres de la matriz.
            for (int indice = 0; indice < filas; indice++)
            {
                Console.WriteLine("Introduce la fila número {0} de la Sopa de Letras.", indice + 1);
                linealeida = Console.ReadLine();
                if (linealeida.Length < columnas) // Por si nos falta algún caracter en alguna de las líneas.
                {
                    Console.WriteLine("La línea " + indice + " no tiene el número de caracteres necesarios.");
                }
                sopa_filas[indice] = linealeida.Substring(0, columnas); // Para que no tome más columnas de las debidas.
            }
            // Capturar el número de palabras a buscar y las palabras.
            Console.Clear();
            Console.WriteLine("Introduce el número de palabras a buscar.");
            linealeida        = Console.ReadLine();
            palabras_objetivo = new ListaBuscar[Convert.ToInt32(linealeida)];
            for (int indice = 0; indice < palabras_objetivo.Length; indice++)
            {
                Console.WriteLine("Escribe la palabra a buscar Num. {0}.", indice);
                linealeida = Console.ReadLine();
                if (linealeida.Length < 2)
                {
                    Console.WriteLine("No se admiten palabras de menos de dos caracteres.\n Se cancela el proceso.");
                    Console.ReadKey(); // Para hacer una pausa y dar tiempo a leer el mensaje.
                    return(false);
                }
                palabras_objetivo[indice] = new ListaBuscar(linealeida);
            }
            return(true);
        }