Inicia sesión en la calle de las SIRENAS

Esta semana trabajamos árduamente, el trabajo fue tan árduo que no entendí lo que estábamos haciendo. Es como cuando le pegas tanto tiempo a la pared que dejas de sentir tus manos y eventualmente tu espíritu.

Se supone que el programa es sencillo. Tiene las siguientes características:

1- Te deja inventar un nuevo usuario y contraseña, además de ingresar información personal como edad, sexo, etc. para almacenarlos en un archivo de texto.
2- Una vez iniciada sesión, el programa te permite agregar un nuevo usuario, dar de baja un usuario, o editar uno ya existente.

Obviamente este ejercicio esta considerado para que tomemos en cuenta la repetición de usuarios, la edición de texto de un archivo y el trabajo sobre las líneas correctas de este, pero en medio del quilombo Don Tonelli no logró captar al cien por ciento todas las instrucciones y para qué sirven, por lo que no podré ser sumamente didáctico como lo soy siempre, recuerden que desde el principio TE AVISÉ que esta iba a ser una jornada mía también así que no tienes derecho a reclamos.

Resultado de imagen para verdugo
Puedes intentarlo pero contraté los servicios de un efectivo verdugo de comentarios.

De todos modos VAMOS A VER EL PROGRAMA!:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Ejemplo_6
{
    class Program
    {
        static void Main(string[] args)
        {
            //Ejemplo de proyecto
            int option = 0;
            do
            { //menu
                Console.WriteLine("ingresaa la opcion que deseas realizar");
                Console.WriteLine("Opcion 1: Inicio de sesion");
                Console.WriteLine("Opcion 2: Registrarse");
                option = int.Parse(Console.ReadLine());
                switch(option)
                {
                    case 1:
                        { //inicio de sesion , llevar archivo a ram
                            StreamReader lectura = File.OpenText(@"");
                            string contenido = lectura.ReadToEnd();
                            lectura.Close();
                            string[] elementos = contenido.Split('\n');
                            //fin de creacion de la copia del archivo
                            Console.WriteLine("Bienvenido");
                            Console.WriteLine("Ingresa tu nombre de usuario:");
                            string temp = Console.ReadLine();
                            bool vali = false;
                            for(int x=0; x<elementos.Length;x=x+2)
                            {
                                if(elementos[x].Trim().Equals(temp))
                                {
                                    Console.WriteLine("Ingresa tu contraseña");
                                    temp = Console.ReadLine();
                                    if (elementos[x+1].Trim().Equals(temp))
                                    {
                                        vali = true;
                                        break;
                                    }
                                    else
                                    {
                                        vali = false;
                                        break;
                                    }
                                }
                                else
                                {
                                    vali = false;
                                }
                            }
                            if(vali==true)//if(vali)
                            {
                                Console.Clear();
                                Console.WriteLine("BIENVENIDO");
                                //menu de la aplicacion
                                int opmen = 0;
                                Console.WriteLine("ingresa la opcion que deseas realizar");
                                Console.WriteLine("Opcion 1: Menu usuarios");
                                Console.WriteLine("Opcion 2: Menu productos");
                                Console.WriteLine("Opcion 2: Reportes");
                                opmen = int.Parse(Console.ReadLine());
                                //fin del menu
                                switch (opmen)
                                {
                                    case 1: // usuarios
                                        {
                                            byte opcionUsuarios = 0;
                                            Console.WriteLine("Bienvenido a opciones de usuario");
                                            Console.WriteLine("Para dar de alta un usuario presione 1");
                                            Console.WriteLine("Para dar de baja un usuario presione 2");
                                            Console.WriteLine("Para realizar cambios en la informacion de un usuario presione 3");
                                            opcionUsuarios = byte.Parse(Console.ReadLine());
                                            switch(opcionUsuarios)
                                            {
                                                case 1://altas
                                                    {
                                                        Console.WriteLine("Bienvenido a altas");
                                                        bool valida = true;
                                                        StreamWriter escritura = File.AppendText(@"u_detalle.txt");
                                                        string temporal = null;
                                                        Console.WriteLine("Registro de usuarios");
                                                        Console.WriteLine("Ingresa tu nombre(s)");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu Apellido paterno");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu Apellido materno");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu fecha de nacimiento: DD/MM/AAAA");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu direccion");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu telefono");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu sexo H/M");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        Console.WriteLine("Ingresa tu Entidad de nacimiento");
                                                        temporal = Console.ReadLine();
                                                        escritura.WriteLine(temporal);
                                                        escritura.Close();
                                                        Console.Clear();
                                                        Console.WriteLine("Los datos han sido almacenados"); // fin de registro
                                                        Console.WriteLine("Elige un nombre de usuario"); // creaxion de ususario
                                                        temporal = Console.ReadLine();
                                                        if (File.Exists(@"usuarios.txt")) // verificar si existe el archivo
                                                        {
                                                            StreamReader lecturaaltas = File.OpenText(@"");
                                                            string contenidoaltas = lectura.ReadToEnd();
                                                            lectura.Close();
                                                            string[] datos = contenido.Split('\n');
                                                            do
                                                            {
                                                                Console.WriteLine("Ingresa tu nombre de usuario");
                                                                temporal = Console.ReadLine();
                                                                escritura.WriteLine(temporal); // validacion de usuario unico
                                                                for (int x = 0; x < datos.Length; x = x + 2)
                                                                {
                                                                    if (datos[x].Trim().Equals(temporal))
                                                                    {
                                                                        Console.WriteLine("El usuario ya existe");
                                                                        valida = false;
                                                                    }
                                                                    else
                                                                    {
                                                                        StreamWriter creacion = File.AppendText(@"");
                                                                        creacion.WriteLine(temporal);
                                                                        Console.WriteLine("Ingresa tu contraseña");
                                                                        temporal = Console.ReadLine();
                                                                        escritura.WriteLine(temporal);
                                                                        creacion.Close();
                                                                        valida = true;
                                                                    }
                                                                }
                                                            }
                                                            while (valida != true);
                                                        }
                                                        else
                                                        { // cuando el archivo no existe
                                                            StreamWriter creacion = File.CreateText(@"");
                                                            Console.WriteLine("Ingresa tu nombre de usuario");
                                                            temporal = Console.ReadLine();
                                                            escritura.WriteLine(temporal);
                                                            Console.WriteLine("Ingresa tu contraseña");
                                                            temporal = Console.ReadLine();
                                                            escritura.WriteLine(temporal);
                                                            creacion.Close();
                                                            Console.WriteLine("Los datos han sido almacenados");
                                                        }
                                                        break;
                                                    }
                                                case 2://bajas
                                                    {
                                                        Console.WriteLine("Bienvenido a bajas");
                                                        Console.WriteLine("Ingresa el usuario a dar de baja");
                                                        string usuario = Console.ReadLine();
                                                        //lectura archivo
                                                        StreamReader lecturaBajas = File.OpenText(@"");
                                                        string contenidoUsuarios = lecturaBajas.ReadToEnd();
                                                        lecturaBajas.Close();
                                                        string[] elementosUsuarios = contenidoUsuarios.Split('\n');
                                                        //fin lectura archivo
                                                        for (int x=0; x<elementosUsuarios.Length;x++)
                                                        {
                                                            if (elementosUsuarios[x].Trim().Equals(usuario))
                                                            {
                                                                Console.WriteLine("Ingresa contraseña");
                                                                usuario = Console.ReadLine();
                                                                if (elementosUsuarios[x].Trim().Equals(usuario))
                                                                {
                                                                    //baja
                                                                    elementosUsuarios[x] = "";
                                                                    elementosUsuarios[x + 1] = "";
                                                                    Console.WriteLine("se elimino");
                                                                    StreamReader lecturaBajas2 = File.OpenText(@"u_detalle.txt");
                                                                    string contenidoUsuarios2 = lecturaBajas2.ReadToEnd();
                                                                    lecturaBajas.Close();
                                                                    string[] elementosUsuarios2 = contenidoUsuarios2.Split('\n');
                                                                    for(int i = 0; i < elementosUsuarios2.Length; i++)
                                                                    {
                                                                        if (elementosUsuarios2[i].Trim().Equals(usuario))
                                                                        {
                                                                            for(int j = 0; j < 8; j++)
                                                                            {
                                                                                elementosUsuarios2[i] = "";
                                                                                i = i + 1;
                                                                            }

                                                                        }

                                                                    }

                                                                }
                                                                else
                                                                {
                                                                    Console.WriteLine("Contra incorrecta");
                                                                }
                                                            }
                                                           
                                                        }
                                                        //guardado
                                                        StreamWriter escrituraUsuarios = File.CreateText(@"usuarios.txt");
                                                        for(int x = 0; x < elementosUsuarios.Length; x++)
                                                        {
                                                            if (elementosUsuarios[x] != "")
                                                            {
                                                                escrituraUsuarios.WriteLine();
                                                            }
                                                        }
                                                        escrituraUsuarios.Close();
                                                        //fin
                                                        break;
                                                    }
                                                case 3://cambios
                                                    {
                                                        break;
                                                    }
                                                default:
                                                    {
                                                        Console.WriteLine("Opcion no valida");
                                                        break;
                                                    }
                                            }
                                         
                                            break;
                                        }
                                    case 2: // productos
                                        {
                                            byte opcionProductos = 0;
                                            Console.WriteLine("Bienvenido a opciones de producto");
                                            Console.WriteLine("Para dar de alta un producto presione 1");
                                            Console.WriteLine("Para dar de baja un producto presione 2");
                                            Console.WriteLine("Para realizar cambios en la informacion de un producto presione 3");
                                            opcionProductos = byte.Parse(Console.ReadLine());
                                            switch (opcionProductos)
                                            {
                                                case 1:
                                                    {
                                                        break;
                                                    }
                                                case 2:
                                                    {
                                                        break;
                                                    }
                                                case 3:
                                                    {
                                                        break;
                                                    }
                                                default:
                                                    {
                                                        Console.WriteLine("Opcion no valida");
                                                        break;
                                                    }
                                            }
                                            break;
                                        }
                                    case 3:// reportes
                                        {
                                            break;
                                        }
                                    default:
                                        {
                                            Console.WriteLine("Opcion no valida");
                                            break;
                                        }
                                }
                            }
                            else
                            {
                                Console.WriteLine("El usuario o la contraseña son incorrectos.");
                            }
                            break;
                        }
                    case 2:
                        {  // creacion de archivo de texto
                            bool vali = true;
                            StreamWriter escritura = File.AppendText(@"u_detalle.txt");
                            string temp = null;
                            Console.WriteLine("Registro de usuarios");
                            Console.WriteLine("Ingresa tu nombre(s)");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu Apellido paterno");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu Apellido materno");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu fecha de nacimiento: DD/MM/AAAA");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu direccion");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu telefono");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu sexo H/M");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            Console.WriteLine("Ingresa tu Entidad de nacimiento");
                            temp = Console.ReadLine();
                            escritura.WriteLine(temp);
                            escritura.Close();
                            Console.Clear();
                            Console.WriteLine("Los datos han sido almacenados"); // fin de registro
                            Console.WriteLine("Elige un nombre de usuario"); // creaxion de ususario
                            temp = Console.ReadLine();
                            if(File.Exists(@"usuarios.txt")) // verificar si existe el archivo
                            {
                                StreamReader lectura = File.OpenText(@"");
                                string contenido = lectura.ReadToEnd();
                                lectura.Close();
                                string[] datos = contenido.Split('\n');
                                do
                                {
                                    Console.WriteLine("Ingresa tu nombre de usuario");
                                    temp = Console.ReadLine();
                                    escritura.WriteLine(temp); // validacion de usuario unico
                                    for (int x = 0; x < datos.Length; x = x + 2)
                                    {
                                        if (datos[x].Trim().Equals(temp))
                                        {
                                            Console.WriteLine("El usuario ya existe");
                                            vali = false;
                                        }
                                        else
                                        {
                                            StreamWriter creacion = File.AppendText(@"");
                                            creacion.WriteLine(temp);
                                            Console.WriteLine("Ingresa tu contraseña");
                                            temp = Console.ReadLine();
                                            escritura.WriteLine(temp);
                                            creacion.Close();
                                            vali = true;
                                        }
                                    }
                                }
                                while (vali != true);
                            }
                            else
                            { // cuando el archivo no existe
                                StreamWriter creacion = File.CreateText(@"");
                                Console.WriteLine("Ingresa tu nombre de usuario");
                                temp = Console.ReadLine();
                                escritura.WriteLine(temp);
                                Console.WriteLine("Ingresa tu contraseña");
                                temp = Console.ReadLine();
                                escritura.WriteLine(temp);
                                creacion.Close();
                                Console.WriteLine("Los datos han sido almacenados");
                            }
                            break;
                        }
                        default:
                        {
                            Console.WriteLine("La opcion que elegiste no es valida");
                            break;
                        }
                }
                Console.WriteLine("Deseas continuar en el programa: 1=SI");
                option = int.Parse(Console.ReadLine());
            }
            while (option == 1 );
        }
    }
}

No es que el código sea un monstruo en tamaño, pero si que tengo que organizarme mejor.

Todo el programa está estructurado en  un switch que te da a elegir la función que quieres que haga el programa. Para efectos de explicación, la alta de usuarios es sencillamente una sección de Console.WriteLines y Console.ReadLines que almacenan los datos en el archivo creado. Al crear el nombre de usuario compara éste con todos los elementos congruentes con 1 mod 2, para definir si ya fue usado, de ser así para NEGARLE LA ENTRADA AL INVASOR.

La sección de bajas hace exáctamente lo mismo, pero a la hora de encontrar el usuario a borrar lo sustituye el texto por un "". La sección de cambios es una combinación de los dos métodos. El problema del programa es que al ser dos archivos a modificar, se formuló un menudo destlakalache de variables que no entiendo para que sirven, o si pudiera haber reciclado alguna otra. Ni siquiera se porque están ahí las que sí reciclamos. 

Espero ILUMINARME EN SOBREMANERA muy pronto, como siempre invariablemente lo hago, para poder mostrarles LA VERDAD, y condensar un blog post ALTAMENTE CONCEPTUAL Y CORRECTAMENTE ENFATIZADO, que los dejara BOOKI ABIERTOS.

hasta la próxima SÚBDITOS.



Comentarios

Publicar un comentario