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); }
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); }