Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Hasta que acierte un usuario y una contraseña de un archivo text en java netbeans

Estas en el tema de Hasta que acierte un usuario y una contraseña de un archivo text en java netbeans en el foro de Java en Foros del Web. Que tal de nuevo, alguna idea para que me deje ingresar luego de haber acertado un usuario y una contraseña de un archivo de texto? ...
  #1 (permalink)  
Antiguo 07/12/2014, 19:25
 
Fecha de Ingreso: diciembre-2014
Mensajes: 15
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Hasta que acierte un usuario y una contraseña de un archivo text en java netbeans

Que tal de nuevo, alguna idea para que me deje ingresar luego de haber acertado un usuario y una contraseña de un archivo de texto? uso un do while pero no he podido montar en el while que las dos sean ciertas para que entre sino que repita todo hasta que pegue las dos.

aqui el codigo que lee variables por aparte en distintos JOptionpane:


[HIGHLIGHT="Java"]
Código Java:
Ver original
  1. admin = JOptionPane.showInputDialog ("ID admin :");
  2.  
  3. /////////////////// aqui pondria el inicio del (do) para repetir el ciclo en caso que no acierte el usuario o una contraseña
  4.  
  5.     try {
  6.     final BufferedReader reader = new BufferedReader(new FileReader("C:/ficheros/datos.txt"));
  7.  
  8.                             String line = "";  
  9.                             while((line = reader.readLine())!= null) {
  10.                             if(line.indexOf(";")!= -1){
  11.  
  12.                                     if (line.split(";")[0].equalsIgnoreCase(admin)) {
  13.                                         System.out.println("se encontro el usuario "+ admin);
  14.                                     }
  15.                                 }
  16.  
  17.                                 }reader.close();
  18.                             } catch (FileNotFoundException e) {e.printStackTrace();
  19.                             } catch (IOException           e) {e.printStackTrace();
  20.                             }
  21.  
  22.                    /////// fin de ingreso del nombre usuario
  23.                            
  24.                             String passwordAdmin;
  25.                             passwordAdmin = JOptionPane.showInputDialog ("Password :");
  26.                            
  27.                            try {
  28.   final BufferedReader reader = new BufferedReader(new FileReader("C:/ficheros/datos.txt"));
  29.                                 String line = "";  
  30.                                 while((line = reader.readLine())!= null) {
  31.                                 if(line.indexOf(";")!= -1){
  32.  
  33.                                     if (line.split(";")[0].equalsIgnoreCase(passwordAdmin)) {
  34.                                         System.out.println("se encontro el password ");
  35.                                     }
  36.                                 }
  37.  
  38.                                 }reader.close();
  39.                             } catch (FileNotFoundException e) {e.printStackTrace();
  40.                             } catch (IOException           e) {e.printStackTrace();
  41.                             }
  42.  
  43.  
  44. ///////////// aqui pondria el while validando las dos variables mientras una u otra sean distintas de... repita el ciclo
  #2 (permalink)  
Antiguo 08/12/2014, 01:39
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

Buenas,

Que while? Te basta con dos simples variables booleanas.

Código Java:
Ver original
  1. admin = JOptionPane.showInputDialog ("ID admin :");
  2.  
  3. boolean userValid = false;
  4. boolean pwdValid = false;
  5.  
  6. /////////////////// aqui pondria el inicio del (do) para repetir el ciclo en caso que no acierte el usuario o una contraseña
  7.  
  8.     try {
  9.     final BufferedReader reader = new BufferedReader(new FileReader("C:/ficheros/datos.txt"));
  10.  
  11.                             String line = "";  
  12.                             while((line = reader.readLine())!= null) {
  13.                             if(line.indexOf(";")!= -1){
  14.  
  15.                                     if (line.split(";")[0].equalsIgnoreCase(admin)) {
  16.                                         System.out.println("se encontro el usuario "+ admin);
  17.                                         userValid = true;
  18.                                         break;
  19.                                     }
  20.                                 }
  21.  
  22.                                 }reader.close();
  23.                             } catch (FileNotFoundException e) {e.printStackTrace();
  24.                             } catch (IOException           e) {e.printStackTrace();
  25.                             }
  26.  
  27.                    /////// fin de ingreso del nombre usuario
  28.                            
  29.                             String passwordAdmin;
  30.                             passwordAdmin = JOptionPane.showInputDialog ("Password :");
  31.                            
  32.                            try {
  33.   final BufferedReader reader = new BufferedReader(new FileReader("C:/ficheros/datos.txt"));
  34.                                 String line = "";  
  35.                                 while((line = reader.readLine())!= null) {
  36.                                 if(line.indexOf(";")!= -1){
  37.  
  38.                                     if (line.split(";")[0].equalsIgnoreCase(passwordAdmin)) {
  39.                                         System.out.println("se encontro el password ");
  40.                                         pwdValid = true;
  41.                                         break;
  42.                                     }
  43.                                 }
  44.  
  45.                                 }reader.close();
  46.                             } catch (FileNotFoundException e) {e.printStackTrace();
  47.                             } catch (IOException           e) {e.printStackTrace();
  48.                             }
  49.  
  50.  
  51. ///////////// aqui pondria el while validando las dos variables mientras una u otra sean distintas de... repita el ciclo
  52.  
  53. if (userValid && pwdValid) {
  54.     //Puede entrar
  55. } else {
  56.     ///Acceso rechazado
  57. }

Nota: tienes que cerrar los lectores correctamente en un finally. Ejemplo: http://www.java2s.com/Code/Java/Lang...minfinally.htm

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 08/12/2014, 02:41
 
Fecha de Ingreso: diciembre-2014
Mensajes: 15
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

gracias profe... pero mmm dentro del if coloque mi programita sabiendo que los dos datos los acertó, sin embrago se sale. solo dice usuario encontrado.. para probar le puse : un Sout.. y no lo mostró

Código Java:
Ver original
  1. if (userValid && pwdValid) {
  2.        
  3.         System.out.println System.out.println ("ELECTRONIC STORE")
  4.  
  5. } else {
  6.     ///Acceso rechazado
  7. }
  #4 (permalink)  
Antiguo 08/12/2014, 03:22
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

Es que tambien tienes que pensar algo, no vale que te lo hagan todo.

Si solo dice que encontro el usuario es porque no encontro el pasword.

Mira esta linea que tienes. No ves nada incorrecto?:

Código Java:
Ver original
  1. if (line.split(";")[0].equalsIgnoreCase(passwordAdmin)) {


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 08/12/2014, 06:01
 
Fecha de Ingreso: diciembre-2014
Mensajes: 15
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

No profe, las funciones son las mismas.. aun no se.. lo mejor es que termine el programita y deje de ultimo la entrada !!!
Aun esperare alguna ayuda que me aclare esa entrada...
  #6 (permalink)  
Antiguo 08/12/2014, 07:11
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

Buenas,

No deberias aniadir el codigo si no lo comprendes.

En dicha linea estas comprobando si el password es valido.... mirando la columna de los usuarios.

Deberia estar asi:

Código Java:
Ver original
  1. if (line.split(";")[1].equalsIgnoreCase(passwordAdmin)) {

Echale un vistazo al metodo split
http://www.tutorialspoint.com/java/j...ring_split.htm


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 08/12/2014, 09:47
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

Leer archivo
UserDeArchivo=dato usuario de archivo
PassDeArchivo=dato contraseña de archivo.

contadorIntentos=0 <-- opcional

UserFromTeclado = Pedir usuario por teclado
PassDeTeclado = Pedir contraseña por teclado

while (UserDeArchivo!=UserFromTeclado || PassDeArchivo != PassDeTeclado){
Mostrar mensaje "Usuario o contraseña incorrectos, repita de nuevo"
UserFromTeclado = Pedir User por teclado
PassDeTeclado = Pedir Password por teclado

opcional:
contadorIntentos++
if (contadorIntentos==5){
contadorIntentos=0
Mostrar mensaje "Ha realizado 5 intentos incorrectos. El programa se detendrá 30 segundos para impedir intrusiones malintencionadas"
pausa 30 segundos

fin de if

fin de while

Continuar con el programa.

Última edición por Kritik; 08/12/2014 a las 09:55
  #8 (permalink)  
Antiguo 09/12/2014, 01:01
 
Fecha de Ingreso: diciembre-2014
Mensajes: 15
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Hasta que acierte un usuario y una contraseña de un archivo text en java n

Gracias por sus ayudas!, al profe Falken y kritik se les agradece sus respuestas, profe ese 1 que estaba ahi era el error y me costo verlo pero gracias porque asi me queda de experiencia para otros proyectos.

Etiquetas: contraseña, netbeans, string, text, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.