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.

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 );
}
}
}
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.

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.
Interesante publicación! :)
ResponderBorrar