⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Programación y Desarrollo

Corregir este programa

Meta
Meta
39
hace 5 años
hace 5 años
Buenas gente del foro: Teniendo este programa, no se comporta como quiero. Se trata de usar solo las teclas flechas y la tecla Enter. Con ello se puede crear un nombre, escribir un nombre que quiera. Cuando ya termine, pulso Enter y se posiciona en la parte indicada en la imagen de abajo. Aquí abajo, escribí todo a AAAAAAAAAAAAA. Al pulsar Enter, tiene que ser capaz de señalar con las teclas flechas izquiera y derecha para poder elegir ATRÁS o GUARDAR. Una vez que haya elegido con el símbolo en > ATRÁS, si pulsa Enter muestra un mensaje: [code]Console.Write("HAS PULSADO ATRÁS   ");[/code] El programa en esta parte se acaba ahí. Si con las flechas del teclado selecciona en > GUARDAR, luego pulsa la tecla Enter. A parte que el nombre como en este caso AAAAAAAAAAA, se almacena en la variable... [code]static string guardarNombre = "";[/code] Muestra el mensaje: HAS GUARDADO y el nombre AAAAAAAAAAAAAAAA en pantalla. Código completo en C#: [code]using System; namespace LCD_nombre_archivo_consola_06 {     class Program     {         static string guardarNombre = "";         static int coordenadaX = 0;         private static ConsoleKey tecla;         // Caracteres de este array.         static readonly char[] roALFANUMERICO = new char[]         {             'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P',             'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',             'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y',             'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.', ',', '-', '_', ':', ';',             '¿', '?', '(', ')', '[', ']', '{', '}','=', '$','&', '"', ' '         };         // Dirección del carácter del array. El 80 presenta al espacio del array roALFANUMERICO.         static readonly int[] roINDICE_ARRAY = new int[]         {             80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80         };         private static readonly string[] roTEXTO = new string[] { "ATRÁS", "GUARDAR" };         static int index = 0;         static void Main(string[] args)         {             // Título de la pantalla.             Console.Title = "Cambiar nombre";             Inicio();         }         #region Inico.         private static void Inicio()         {             // Tamaño de la ventana.             Console.SetWindowSize(20, 5);             // Fondo verde.             Console.BackgroundColor = ConsoleColor.Blue;             // Letras negras.             Console.ForegroundColor = ConsoleColor.White;             // Limpiar pantalla.             Console.Clear();             Console.SetCursorPosition(0, 0);             Console.Write("Nombre del relé 1:  ");             Console.SetCursorPosition(0, 1);             //Console.Write("AAAAAAAAAAAAAAAA");             // Recorre todo el índice del array y el de los datos alfanumérico             // y los rellena.             for (int i = 0; i < roINDICE_ARRAY.Length; i++)             {                 Console.Write(roALFANUMERICO[roINDICE_ARRAY[i]]);             }             Console.SetCursorPosition(2, 3);             Console.Write(roTEXTO[0]); // ATRÁS.             Console.SetCursorPosition(12, 3);             Console.Write(roTEXTO[1]); // GUARDAR.             while (true)             {                 Console.SetCursorPosition(coordenadaX, 1);                 // Almacena cualquier tecla pulsada en la variable key.                 tecla = Console.ReadKey(true).Key;                 switch (tecla)                 {                     case ConsoleKey.RightArrow:                         if (coordenadaX < 15)                         {                             coordenadaX++;                         }                         break;                     case ConsoleKey.LeftArrow:                         if (coordenadaX > 0)                         {                             coordenadaX--;                         }                         break;                     case ConsoleKey.UpArrow:                         roINDICE_ARRAY[coordenadaX]++;                         if (roINDICE_ARRAY[coordenadaX] >= roALFANUMERICO.Length)                         {                             roINDICE_ARRAY[coordenadaX] = 0;                         }                         Console.Write(roALFANUMERICO[roINDICE_ARRAY[coordenadaX]]);                         break;                     case ConsoleKey.DownArrow:                         roINDICE_ARRAY[coordenadaX]--;                         if (roINDICE_ARRAY[coordenadaX] < 0)                         {                             roINDICE_ARRAY[coordenadaX] = roALFANUMERICO.Length - 1;                         }                         Console.Write(roALFANUMERICO[roINDICE_ARRAY[coordenadaX]]);                         break;                     case ConsoleKey.Enter:                          Console.SetCursorPosition(1, 3);                          Console.Write(">");                               while (true)                             {                                 tecla = Console.ReadKey(true).Key;                                 switch (tecla)                                 {                                     case ConsoleKey.RightArrow:                                     case ConsoleKey.LeftArrow:                                         index = 1 - index;                                         break;                                     case ConsoleKey.UpArrow:                                     case ConsoleKey.DownArrow:                                         Console.SetCursorPosition(coordenadaX, 1);                                         break;                                     case ConsoleKey.Enter:                                         break;                                 }                                 for (int a = 0; a < 2; a++)                                 {                                     Console.SetCursorPosition(1 + (10 * a), 3);                                     if (a == index)                                     {                                         Console.Write(">");                                 }                                 else                                 {                                     Console.Write(" ");                                 }                             }                             if (index == 0)  // se pulsó Atrás                             {                                 Atras();                                 //break;  // vuelve a la edición de letras                             }                                                          if (index == 1)  // se pulsó Guardar                             {                                 Guardar();                             }                         }                 }             }         }         #endregion         private static void Atras()         {             Console.Clear();             Console.SetCursorPosition(0, 1);             Console.Write("HAS PULSADO ATRÁS   ");             Console.ReadKey(); // Pulse cualquier tecla para salir.         }         private static void Guardar()         {             Console.Clear();             Console.SetCursorPosition(0, 1);             Console.Write("HAS GUARDADO       ");             for (int a = 0; a < roINDICE_ARRAY.Length; a++)             {                 guardarNombre += roALFANUMERICO[roINDICE_ARRAY[a]].ToString();             }             Console.SetCursorPosition(0, 2);             Console.Write(guardarNombre);         }     } }[/code] ¿Alguna idea? Un saludo.
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.93
(14)

Curso Reparación de Equipos de Audio de Alta Fidelidad

Maximiliano Resch
$ 60 USD
$ 20 USD
4.84
(25)

Curso Práctico de Reparación y Bobinado de Motores Eléctricos

Héctor Castiñeira
$ 60 USD
$ 20 USD
4.6
(10)

Curso Localización de Fallas en Refrigeración en Heladeras/Neveras On/Off

Yamil Alarcón
$ 29 USD
$ 12 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis