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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Guardar y leer archivo de texto
« en: 8 Agosto 2024, 02:48 am »

Buenas:



Usando C# en modo consola, se puede señalar con las flechas del teclado seleccionar alguna opción con esto >. Solo debe estar marcado con una x.

La idea es, al ejecutar el programa, si no encuentra el archivo.txt, lo cree y escribe la opción marcada con la x.

Al volver a ejecutar el programa, me indica la opción marcada que leyó en el archivo.txt.

Código que he hecho hasta ahora pero no lee, si lo crea es este:

Código
  1. using System;
  2. using System.IO;
  3.  
  4. namespace Pruebas_Opciones_Consola_02
  5. {
  6.    internal class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            #region Configuración ventana.
  11.            // Título de la ventana.
  12.            Console.Title = "Opciones";
  13.  
  14.            // Tamaño de la ventana, x, y o, ancho y alto.
  15.            const byte ancho = 20, alto = 5;
  16.            Console.SetWindowSize(ancho, alto);
  17.  
  18.            // Quitar scroll laterales. Derecho y abajo.
  19.            Console.SetBufferSize(ancho, alto);
  20.  
  21.            // Color de fondo.
  22.            Console.BackgroundColor = ConsoleColor.Yellow;
  23.  
  24.            // Color de las letras.
  25.            Console.ForegroundColor = ConsoleColor.Black;
  26.  
  27.            // Limpiar pantalla y dejarlo todo en color de fondo.
  28.            Console.Clear();
  29.  
  30.            // Visible el cursor. // No! Así lo haces invisible.
  31.            Console.CursorVisible = false;
  32.            #endregion
  33.  
  34.            string[] opciones =
  35. {
  36.                    "    ** TÍTULO **    ",    // Posición 0.
  37.                    "  ( ) Opción A      ",    // 1
  38.                    "  ( ) Opción B      ",    // 2
  39.                    "  ( ) Opción C      ",    // 3
  40.                    "  SALIR             ",    // 4
  41.                    ">",                       // 5
  42.                    "x",                       // 6
  43.                    " ",                       // 7
  44.                    "                    "     // 8
  45.                };
  46.  
  47.            // Cada vez que se vuelva al menú, está señalizado con la x.
  48.            int itemSeleccionado;
  49.  
  50.            Menu();
  51.  
  52.            #region Opociones, selecciones y guardar archivo .txt
  53.            void OpcionesA()
  54.            {
  55.                Console.SetCursorPosition(0, 0);
  56.                Console.Write(opciones[0]);       //    ** TÍTULO **    
  57.                Console.SetCursorPosition(0, 1);
  58.                Console.Write(opciones[1]);       //   ( ) Opción A
  59.                Console.SetCursorPosition(0, 2);
  60.                Console.Write(opciones[2]);       //   ( ) Opción B
  61.                Console.SetCursorPosition(0, 3);
  62.                Console.Write(opciones[3]);       //   ( ) Opción C
  63.            }
  64.  
  65.            void OpcionesB()
  66.            {
  67.                Console.SetCursorPosition(0, 1);
  68.                Console.Write(opciones[4]);       //   SALIR
  69.                Console.SetCursorPosition(0, 2);
  70.                Console.Write(opciones[8]);       //  
  71.                Console.SetCursorPosition(0, 3);
  72.                Console.Write(opciones[8]);       //
  73.            }
  74.  
  75.            void SelectorA()
  76.            {
  77.                Console.SetCursorPosition(0, 1);
  78.                Console.Write(opciones[5]);       // >
  79.                Console.SetCursorPosition(0, 2);
  80.                Console.Write(opciones[7]);
  81.                Console.SetCursorPosition(0, 3);
  82.                Console.Write(opciones[7]);
  83.            }
  84.  
  85.            void SelectorB()
  86.            {
  87.                Console.SetCursorPosition(0, 1);
  88.                Console.Write(opciones[7]);
  89.                Console.SetCursorPosition(0, 2);
  90.                Console.Write(opciones[5]);       // >
  91.                Console.SetCursorPosition(0, 3);
  92.                Console.Write(opciones[7]);
  93.            }
  94.  
  95.            void SelectorC()
  96.            {
  97.                Console.SetCursorPosition(0, 1);
  98.                Console.Write(opciones[7]);
  99.                Console.SetCursorPosition(0, 2);
  100.                Console.Write(opciones[7]);
  101.                Console.SetCursorPosition(0, 3);
  102.                Console.Write(opciones[5]);        // >
  103.            }
  104.            #endregion
  105.  
  106.            void Menu()
  107.            {
  108.                sbyte indiceSeleccionado = 0;                // Índice seleccionado de cada opción del menú.
  109.                bool salir = false;                          // Para salir del menú principal al INICIO.
  110.                sbyte SELECCION_OPCIONES_TOTALES = 3;        // Total de opciones para seleccionar y fija.
  111.  
  112.                string opA = "x";
  113.                string opB = " ";
  114.                string opC = " ";
  115.  
  116.                // Capturar tecla para luego validar.
  117.                ConsoleKey tecla;
  118.  
  119.                itemSeleccionado = 1;
  120.  
  121.                // Crear archivo y guarda el * seleccioinado en él.
  122.                if (File.Exists("Archivo.txt"))
  123.                {
  124.                    string data = File.ReadAllText("Archivo.txt");
  125.                    itemSeleccionado = Convert.ToInt32(data);
  126.                    //itemSeñalado = itemSeleccionado;
  127.                }
  128.  
  129.                do
  130.                {
  131.                    //******************************************************************
  132.                    // Dibujo el menú principal.
  133.  
  134.                    switch (indiceSeleccionado)
  135.                    {
  136.                        case 0:
  137.                            OpcionesA();
  138.                            SelectorA();
  139.                            Console.SetCursorPosition(3, 1);
  140.                            Console.Write(opA);
  141.                            Console.SetCursorPosition(3, 2);
  142.                            Console.Write(opB);
  143.                            Console.SetCursorPosition(3, 3);
  144.                            Console.Write(opC);
  145.                            break;
  146.  
  147.                        case 1:
  148.                            OpcionesA();
  149.                            SelectorB();
  150.                            Console.SetCursorPosition(3, 1);
  151.                            Console.Write(opA);
  152.                            Console.SetCursorPosition(3, 2);
  153.                            Console.Write(opB);
  154.                            Console.SetCursorPosition(3, 3);
  155.                            Console.Write(opC);
  156.                            break;
  157.  
  158.                        case 2:
  159.                            OpcionesA();
  160.                            SelectorC();
  161.                            Console.SetCursorPosition(3, 1);
  162.                            Console.Write(opA);
  163.                            Console.SetCursorPosition(3, 2);
  164.                            Console.Write(opB);
  165.                            Console.SetCursorPosition(3, 3);
  166.                            Console.Write(opC);
  167.                            break;
  168.  
  169.                        case 3:
  170.                            OpcionesB();
  171.                            Console.SetCursorPosition(0, 1);
  172.                            Console.Write(opciones[5]);       // >
  173.                            break;
  174.                        default:
  175.                            Console.Write("Fuera de rango.     ");
  176.                            break;
  177.                    }
  178.  
  179.                    // Fin de pintar el menú principal.
  180.                    //******************************************************************
  181.  
  182.                    // Leer tecla ingresada por el usuario.
  183.                    tecla = Console.ReadKey(true).Key;
  184.  
  185.                    // Validar el tipo de tecla.
  186.                    if (tecla == ConsoleKey.Enter)
  187.                    {
  188.                        switch (indiceSeleccionado)
  189.                        {
  190.                            case 0:
  191.                                opA = "x"; opB = " "; opC = " ";
  192.                                break;
  193.  
  194.                            case 1:
  195.                                opA = " "; opB = "x"; opC = " ";
  196.                                break;
  197.  
  198.                            case 2:
  199.                                opA = " "; opB = " "; opC = "x";
  200.                                break;
  201.  
  202.                            case 3:
  203.                                indiceSeleccionado = 0; // Restaurar índice antes de salir.
  204.                                salir = true;           // Salir.
  205.                                break;
  206.  
  207.                            default:
  208.                                Console.Write("Fuera de rango.     ");
  209.                                break;
  210.                        }
  211.                    }
  212.  
  213.                    // ¿Has pulsado tecla flecha Abajo?
  214.                    if (tecla == ConsoleKey.DownArrow)
  215.                    {
  216.                        indiceSeleccionado++;
  217.                    }
  218.  
  219.                    // Entonces si pulsas tecla flecha Arriba.
  220.                    if (tecla == ConsoleKey.UpArrow)
  221.                    {
  222.                        indiceSeleccionado--;
  223.                    }
  224.  
  225.                    // Si está en la última opción, salta a la primera.
  226.                    if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES)
  227.                    {
  228.                        indiceSeleccionado = 0;
  229.                    }
  230.  
  231.                    // Si está en la primera posición, salta a la última.
  232.                    if (indiceSeleccionado < 0)
  233.                    {
  234.                        indiceSeleccionado = SELECCION_OPCIONES_TOTALES;
  235.                    }
  236.  
  237.                    // Uso la tecla escape como salida.
  238.                } while (!salir);
  239.            }
  240.        }
  241.    }
  242. }

El código es malo, fácil de entender, mientras funcione... todo bien.

Gracias.


En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Guardar y leer archivo de texto [SOLUCIONADO]
« Respuesta #1 en: 15 Agosto 2024, 12:21 pm »

Ya me funciona. Lo dejo aquí por si alquien lo necesita o quiere curiosear.
Código
  1. using System;
  2. using System.IO;
  3.  
  4. namespace Pruebas_Opciones_Consola_02
  5. {
  6.    internal class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            #region Configuración ventana.
  11.            // Título de la ventana.
  12.            Console.Title = "Opciones";
  13.  
  14.            // Tamaño de la ventana, x, y o, ancho y alto.
  15.            const byte ANCHO_X = 20, ALTO_Y = 5;
  16.            Console.SetWindowSize(ANCHO_X, ALTO_Y);
  17.  
  18.            // Quitar scroll laterales. Derecho y abajo.
  19.            Console.SetBufferSize(ANCHO_X, ALTO_Y);
  20.  
  21.            // Color de fondo.
  22.            Console.BackgroundColor = ConsoleColor.Yellow;
  23.  
  24.            // Color de las letras.
  25.            Console.ForegroundColor = ConsoleColor.Black;
  26.  
  27.            // Limpiar pantalla y dejarlo todo en color de fondo.
  28.            Console.Clear();
  29.  
  30.            // Visible el cursor. // No! Así lo haces invisible.
  31.            Console.CursorVisible = false;
  32.            #endregion
  33.  
  34.            string[] opciones =
  35. {
  36.                    "    ** TÍTULO **    ",    // Posición 0.
  37.                    "  ( ) Opción A      ",    // 1
  38.                    "  ( ) Opción B      ",    // 2
  39.                    "  ( ) Opción C      ",    // 3
  40.                    "  SALIR             ",    // 4
  41.                    ">",                       // 5
  42.                    "x",                       // 6
  43.                    " ",                       // 7
  44.                    "                    "     // 8
  45.                };
  46.            string opA = "x";
  47.            string opB = " ";
  48.            string opC = " ";
  49.  
  50.            Menu();
  51.  
  52.            #region Opociones, selecciones y guardar archivo .txt
  53.            void OpcionesA()
  54.            {
  55.                Console.SetCursorPosition(0, 0);
  56.                Console.Write(opciones[0]);       //    ** TÍTULO **    
  57.                Console.SetCursorPosition(0, 1);
  58.                Console.Write(opciones[1]);       //   ( ) Opción A
  59.                Console.SetCursorPosition(0, 2);
  60.                Console.Write(opciones[2]);       //   ( ) Opción B
  61.                Console.SetCursorPosition(0, 3);
  62.                Console.Write(opciones[3]);       //   ( ) Opción C
  63.            }
  64.  
  65.            void OpcionesB()
  66.            {
  67.                Console.SetCursorPosition(0, 1);
  68.                Console.Write(opciones[4]);       //   SALIR
  69.                Console.SetCursorPosition(0, 2);
  70.                Console.Write(opciones[8]);       //  
  71.                Console.SetCursorPosition(0, 3);
  72.                Console.Write(opciones[8]);       //
  73.            }
  74.  
  75.            void SelectorA()
  76.            {
  77.                Console.SetCursorPosition(0, 1);
  78.                Console.Write(opciones[5]);       // >
  79.                Console.SetCursorPosition(0, 2);
  80.                Console.Write(opciones[7]);
  81.                Console.SetCursorPosition(0, 3);
  82.                Console.Write(opciones[7]);
  83.            }
  84.  
  85.            void SelectorB()
  86.            {
  87.                Console.SetCursorPosition(0, 1);
  88.                Console.Write(opciones[7]);
  89.                Console.SetCursorPosition(0, 2);
  90.                Console.Write(opciones[5]);       // >
  91.                Console.SetCursorPosition(0, 3);
  92.                Console.Write(opciones[7]);
  93.            }
  94.  
  95.            void SelectorC()
  96.            {
  97.                Console.SetCursorPosition(0, 1);
  98.                Console.Write(opciones[7]);
  99.                Console.SetCursorPosition(0, 2);
  100.                Console.Write(opciones[7]);
  101.                Console.SetCursorPosition(0, 3);
  102.                Console.Write(opciones[5]);        // >
  103.            }
  104.            #endregion
  105.  
  106.            void Menu()
  107.            {
  108.                sbyte indiceSeleccionado = 0;                // Índice seleccionado de cada opción del menú.
  109.                bool salir = false;                          // Para salir del menú principal al INICIO.
  110.                sbyte SELECCION_OPCIONES_TOTALES = 3;        // Total de opciones para seleccionar y fija.
  111.  
  112.                // Capturar tecla para luego validar.
  113.                ConsoleKey tecla;
  114.  
  115.                // Crear archivo y guarda el * seleccioinado en él.
  116.                if (File.Exists("Archivo.txt"))
  117.                {
  118.                    // Leer los datos separados
  119.                    string[] result = File.ReadAllText("Archivo.txt").Split(new char[] { ',' });
  120.                    opA = result[0];
  121.                    opB = result[1];
  122.                    opC = result[2];
  123.                }
  124.  
  125.                do
  126.                {
  127.                    //******************************************************************
  128.                    // Dibujo el menú principal.
  129.  
  130.                    switch (indiceSeleccionado)
  131.                    {
  132.                        case 0:
  133.                            OpcionesA();
  134.                            SelectorA();
  135.                            Console.SetCursorPosition(3, 1);
  136.                            Console.Write(opA);
  137.                            Console.SetCursorPosition(3, 2);
  138.                            Console.Write(opB);
  139.                            Console.SetCursorPosition(3, 3);
  140.                            Console.Write(opC);
  141.                            break;
  142.  
  143.                        case 1:
  144.                            OpcionesA();
  145.                            SelectorB();
  146.                            Console.SetCursorPosition(3, 1);
  147.                            Console.Write(opA);
  148.                            Console.SetCursorPosition(3, 2);
  149.                            Console.Write(opB);
  150.                            Console.SetCursorPosition(3, 3);
  151.                            Console.Write(opC);
  152.                            break;
  153.  
  154.                        case 2:
  155.                            OpcionesA();
  156.                            SelectorC();
  157.                            Console.SetCursorPosition(3, 1);
  158.                            Console.Write(opA);
  159.                            Console.SetCursorPosition(3, 2);
  160.                            Console.Write(opB);
  161.                            Console.SetCursorPosition(3, 3);
  162.                            Console.Write(opC);
  163.                            break;
  164.  
  165.                        case 3:
  166.                            OpcionesB();
  167.                            Console.SetCursorPosition(0, 1);
  168.                            Console.Write(opciones[5]);       // >
  169.                            break;
  170.                        default:
  171.                            Console.Write("Fuera de rango.     ");
  172.                            break;
  173.                    }
  174.  
  175.                    // Fin de pintar el menú principal.
  176.                    //******************************************************************
  177.  
  178.                    // Leer tecla ingresada por el usuario.
  179.                    tecla = Console.ReadKey(true).Key;
  180.  
  181.                    // Validar el tipo de tecla.
  182.                    if (tecla == ConsoleKey.Enter)
  183.                    {
  184.                        switch (indiceSeleccionado)
  185.                        {
  186.                            case 0:
  187.                                opA = "x"; opB = " "; opC = " ";
  188.                                break;
  189.  
  190.                            case 1:
  191.                                opA = " "; opB = "x"; opC = " ";
  192.                                break;
  193.  
  194.                            case 2:
  195.                                opA = " "; opB = " "; opC = "x";
  196.                                break;
  197.  
  198.                            case 3:
  199.                                indiceSeleccionado = 0; // Restaurar índice antes de salir.
  200.                                salir = true;           // Salir.
  201.                                break;
  202.  
  203.                            default:
  204.                                Console.Write("Fuera de rango.     ");
  205.                                break;
  206.                        }
  207.                        // Guardar en archivo solo después de actualizar la opción seleccionada.
  208.                        // Guardar los datos con separador.
  209.                        File.WriteAllText("Archivo.txt", string.Join(",", new string[] { opA, opB, opC }));
  210.                    }
  211.  
  212.                    // ¿Has pulsado tecla flecha Abajo?
  213.                    if (tecla == ConsoleKey.DownArrow)
  214.                    {
  215.                        indiceSeleccionado++;
  216.                    }
  217.  
  218.                    // Entonces si pulsas tecla flecha Arriba.
  219.                    if (tecla == ConsoleKey.UpArrow)
  220.                    {
  221.                        indiceSeleccionado--;
  222.                    }
  223.  
  224.                    // Si está en la última opción, salta a la primera.
  225.                    if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES)
  226.                    {
  227.                        indiceSeleccionado = 0;
  228.                    }
  229.  
  230.                    // Si está en la primera posición, salta a la última.
  231.                    if (indiceSeleccionado < 0)
  232.                    {
  233.                        indiceSeleccionado = SELECCION_OPCIONES_TOTALES;
  234.                    }
  235.  
  236.                    // Uso la tecla escape como salida.
  237.                } while (!salir);
  238.            }
  239.        }
  240.    }
  241. }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
leer un archivo de texto
PHP
Zeroql 3 2,825 Último mensaje 24 Agosto 2007, 05:48 am
por дٳŦ٭
Guardar/Leer datos en un archivo excel
.NET (C#, VB.NET, ASP)
adan-2994 3 4,153 Último mensaje 6 Diciembre 2013, 14:26 pm
por fran800m
Leer archivo de registros y guardar en variables
Programación C/C++
ank3r 3 4,774 Último mensaje 21 Abril 2014, 22:22 pm
por ank3r
Leer archivo de texto « 1 2 »
Programación C/C++
niraikanai 10 6,259 Último mensaje 2 Abril 2015, 07:42 am
por boy-ka
[AYUDA EN C] Leer texto del teclado y guardar en una variable llamada char *str
Programación C/C++
soundevice 3 2,668 Último mensaje 29 Septiembre 2016, 02:45 am
por soundevice
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines