FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Lograr hacer bien el programa
Hola:
Este código funciona a medias. Más bien, no logro situarlo. Está escrito en consola C#. Lo que hace el programa: Se usa solo las teclas flechas del teclado y la tecla Enter. El programa empieza así; Como puedes ver arriba, puedes escribir con las flechas arriba y abajo letras para poner un nombre. Por ejemplo, voy a poner Hola amigo. Lo puedes ver en la captura de abajo. Pulsa Enter. Se muestra el > al lado de ATRÁS. Tal como muestra abajo. Lo que debe hace en esta parte indicado en la imagen de arriba es: 1. Si toco las flechas del teclado izquierda y derecha, me señala con > Atrás o en GUARDAR. 2. Si pulso las flecha arriba o abajo, puedes volver a editar la palabra "Hola amigo", puedes corregir o escribir otra cosa. 3. Si pulsas Enter donde estabas escribiendo "Hola amigo", vuelves en ATRÁS con el >. 4. Estando en > ATRÁS, si pulsas Enter, muestra un mensaje tal como muestra en la captura de abajo y el programa se acaba ahí. El problema que no me funciona esta parte y la que voy a indicar ahora tampoco me funciona. Si estoy en > ATRÁS, al pulsas las flechas derecha o izquierda, debo estar ya en > GUARDAR. Precisamente no me sale. A parte de esto, si pulsas Enter cuando estés en > GUARDAR. Se queda guardado el texto "Hola amigo" guardado en una variable que en este caso se llama static string guardarNombre = ""; Se tiene que mostrar la imagen de abajo. Y se acaba el programa. Me perdí. Alguna idea como se programa esto. Código C#: Código:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LCD_nombre_archivo_consola_08 { 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); // X // Fondo verde, azul, gris. Console.BackgroundColor = ConsoleColor.Gray; // Letras negras, blanco, negro. Console.ForegroundColor = ConsoleColor.Black; // 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.CursorVisible = false; 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); } } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TMS FixInsight – Un Plugin para hacer bien las cosas | jhonny | Varios | 4 | 12-05-2017 18:04:24 |
Lograr que funcione bien un richTextBox | REHome | .NET | 2 | 06-12-2009 21:10:53 |
el programa no anda bien pero al compilar si ?! | gaston260 | Varios | 6 | 17-02-2009 01:41:23 |
Como hacer un backup de la base de datos bien se inicia delphi? | karaoke | Varios | 3 | 12-12-2007 10:05:12 |
Porque no realiza bien el Cmmit o bien un ApplyUpdates(-1)? | Luis Alberto | Varios | 6 | 14-12-2005 22:44:25 |
|