elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Corregir este programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Corregir este programa  (Leído 296 veces)
Meta


Desconectado Desconectado

Mensajes: 3.194



Ver Perfil WWW
Corregir este programa
« en: 17 Junio 2020, 16:43 »

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:
Código
  1. Console.Write("HAS PULSADO ATRÁS   ");

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...
Código
  1. static string guardarNombre = "";

Muestra el mensaje: HAS GUARDADO y el nombre AAAAAAAAAAAAAAAA en pantalla.

Código completo en C#:
Código
  1. using System;
  2.  
  3. namespace LCD_nombre_archivo_consola_06
  4. {
  5.    class Program
  6.    {
  7.        static string guardarNombre = "";
  8.        static int coordenadaX = 0;
  9.        static ConsoleKey key;
  10.  
  11.        static readonly char[] roALFANUMERICO = new char[] {
  12.            'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P',
  13.            'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
  14.            'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y',
  15.            'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.', ',', '-', '_', ':', ';',
  16.            '¿', '?', '(', ')', '[', ']', '{', '}','=', '$','&', '"', ' '};
  17.  
  18.        static readonly int[] roINDICE_ARRAY = new int[] {
  19.            80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 };
  20.  
  21.        private static readonly string[] roTEXTO = new string[] { "ATRÁS", "GUARDAR" };
  22.  
  23.        static int index = 0;
  24.        static void Main(string[] args)
  25.        {
  26.            // Título de la pantalla.
  27.            Console.Title = "Cambiar nombre";
  28.  
  29.            Inicio();
  30.        }
  31.  
  32.        #region Inico.
  33.        private static void Inicio()
  34.        {
  35.            // Tamaño de la ventana.
  36.            Console.SetWindowSize(20, 5);
  37.  
  38.            // Fondo verde.
  39.            Console.BackgroundColor = ConsoleColor.Blue;
  40.  
  41.            // Letras negras.
  42.            Console.ForegroundColor = ConsoleColor.White;
  43.  
  44.            // Limpiar pantalla.
  45.            Console.Clear();
  46.  
  47.            Console.SetCursorPosition(0, 0);
  48.            Console.Write("Nombre del relé 1:  ");
  49.            Console.SetCursorPosition(0, 1);
  50.            //Console.Write("AAAAAAAAAAAAAAAA");
  51.  
  52.            // Recorre todo el índice del array y el de los datos alfanumérico.
  53.            for (int i = 0; i < roINDICE_ARRAY.Length; i++)
  54.            {
  55.                Console.Write(roALFANUMERICO[roINDICE_ARRAY[i]]);
  56.            }
  57.  
  58.            Console.SetCursorPosition(2, 3);
  59.            Console.Write(roTEXTO[0]); // ATRÁS.
  60.            Console.SetCursorPosition(12, 3);
  61.            Console.Write(roTEXTO[1]); // GUARDAR.
  62.  
  63.            while (true)
  64.            {
  65.                Console.SetCursorPosition(coordenadaX, 1);
  66.                key = Console.ReadKey(true).Key;
  67.                switch (key)
  68.                {
  69.                    case ConsoleKey.RightArrow:
  70.                        if (coordenadaX < 15)
  71.                            coordenadaX++;
  72.                        break;
  73.  
  74.                    case ConsoleKey.LeftArrow:
  75.                        if (coordenadaX > 0)
  76.                            coordenadaX--;
  77.                        break;
  78.  
  79.                    case ConsoleKey.UpArrow:
  80.                        roINDICE_ARRAY[coordenadaX]++;
  81.                        if (roINDICE_ARRAY[coordenadaX] >= roALFANUMERICO.Length)
  82.                        {
  83.                            roINDICE_ARRAY[coordenadaX] = 0;
  84.                        }
  85.                        Console.Write(roALFANUMERICO[roINDICE_ARRAY[coordenadaX]]);
  86.                        break;
  87.  
  88.                    case ConsoleKey.DownArrow:
  89.                        roINDICE_ARRAY[coordenadaX]--;
  90.                        if (roINDICE_ARRAY[coordenadaX] < 0)
  91.                        {
  92.                            roINDICE_ARRAY[coordenadaX] = roALFANUMERICO.Length - 1;
  93.                        }
  94.                        Console.Write(roALFANUMERICO[roINDICE_ARRAY[coordenadaX]]);
  95.                        break;
  96.  
  97.                    case ConsoleKey.Enter:
  98.                        Console.SetCursorPosition(1, 3);
  99.                        Console.Write(">");
  100.  
  101.                        while (true)
  102.                        {
  103.                            key = Console.ReadKey(true).Key;
  104.  
  105.                            switch (key)
  106.                            {
  107.                                case ConsoleKey.RightArrow:
  108.                                case ConsoleKey.LeftArrow:
  109.                                    index = 1 - index;
  110.                                    break;
  111.  
  112.                                case ConsoleKey.UpArrow:
  113.                                case ConsoleKey.DownArrow:
  114.                                    Console.SetCursorPosition(coordenadaX, 1);
  115.                                    break;
  116.  
  117.                                case ConsoleKey.Enter:
  118.  
  119.                                    break;
  120.                            }
  121.  
  122.                            for (int a = 0; a < 2; a++)
  123.                            {
  124.                                Console.SetCursorPosition(1 + (10 * a), 3);
  125.                                if (a == index)
  126.                                    Console.Write(">");
  127.                                else
  128.                                    Console.Write(" ");
  129.                            }
  130.  
  131.                            if (index == 0)  // se pulsó Atrás
  132.                            {
  133.                                Atras();
  134.                                //break;  // vuelve a la edición de letras
  135.                            }
  136.  
  137.                            if (index == 1)  // se pulsó Guardar
  138.                            {
  139.                                Guardar();
  140.                            }
  141.                        }
  142.                }
  143.            }
  144.        }
  145.        #endregion
  146.  
  147.        private static void Atras()
  148.        {
  149.            Console.Clear();
  150.            Console.SetCursorPosition(0, 1);
  151.            Console.Write("HAS PULSADO ATRÁS   ");
  152.            Console.ReadKey(); // Pulse cualquier tecla para salir.
  153.        }
  154.  
  155.        private static void Guardar()
  156.        {
  157.            Console.Clear();
  158.            Console.SetCursorPosition(0, 1);
  159.            Console.Write("HAS GUARDADO       ");
  160.            for (int a = 0; a < roINDICE_ARRAY.Length; a++)
  161.            {
  162.                guardarNombre += roALFANUMERICO[roINDICE_ARRAY[a]].ToString();
  163.            }
  164.            Console.SetCursorPosition(0, 2);
  165.            Console.Write(guardarNombre);
  166.        }
  167.    }
  168. }

¿Alguna idea?

Un saludo.


« Última modificación: 17 Junio 2020, 19:54 por Meta » En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Meta


Desconectado Desconectado

Mensajes: 3.194



Ver Perfil WWW
Re: Corregir este programa
« Respuesta #1 en: 17 Junio 2020, 19:54 »

Editado el primer post, que me olvidé de poner el código completo.


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ruby] Me ayudan a corregir este script?
Scripting
Eleкtro 4 2,075 Último mensaje 23 Febrero 2012, 10:20
por Eleкtro
como puedo corregir este error
GNU/Linux
felix6193 3 1,468 Último mensaje 31 Mayo 2012, 13:19
por Saberuneko
¿Me ayudarían a corregir este código?
Programación C/C++
AnungUnRama 6 1,716 Último mensaje 9 Mayo 2013, 16:30
por leosansan
Ayuda a corregir programa en C++ Listas enlazadas
Programación C/C++
orbel2 1 619 Último mensaje 26 Abril 2017, 12:08
por MAFUS
Corregir este error con Win32 « 1 2 »
Programación C/C++
Meta 10 2,351 Último mensaje 7 Abril 2018, 20:14
por srWhiteSkull
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines