Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Salir de un While (https://www.clubdelphi.com/foros/showthread.php?t=19488)

alfredosg19 16-03-2005 09:38:38

Salir de un While
 
Hola de nuevo, estoy haciendo una pantalla de validación de usuarios, y he puesto un While para que se vaya a leer a un archivo mientras el usuario no sea correcto (para ir comparando), el problema es que quiero que en el momento que encuentre un usuario válido salga del While (y que no siga leyendo el archivo), ¿se podría hacer esto?. Gracias de antemano por vuestra ayuda.

rafita 16-03-2005 10:13:40

Hola compañero,

Código:

var intentos : Integer;
        encontrado : Boolean;

....
Intentos:=0;
Encontrado:=False;
While (not Encontrado) and (Intentos<3) do
begin
        if (TUsuarioUsuario.asstring=Edit1.Text) and (TUsuarioClave.asstring=Edit2.Text) then  // sustituye esto por una busqueda en tu base de datos (Query, Locate,...)
          Encontrado:=True
        else
          Inc(Intentos);
end;

if Encontrado then
  // ---> Puede entrar
else
  // Ha superado el nº de intentos permitidos

Prueba con algo así.

Saludos.

alfredosg19 16-03-2005 10:28:08

Gracias por la solución.
 
Una vez más gracias Rafita.:D:D

AGAG4 16-03-2005 16:56:08

Usa...
 
Haz probado usando Abort ó Exit ?????

Que tengas buen día.

keyboy 17-03-2005 01:33:53

Cita:

Empezado por AGAG4
Haz probado usando Abort ó Exit ?????

Que tengas buen día.

Ni abort ni exit sirven en este caso.

abort lanza una excepción silenciosa (sin mensaje) que al igual que
cualquier otra excepción saltará la ejecución de la aplicación hasta encontrar
un bloque try-except.

exit ocasiona que el flujo de la aplicación salga del procedimiento
desde donde se llama.

Así que, en ambos casos, se sale bastante más allá del ciclo while.

Quizá estabas más bien pensando en break que, en efecto, podría
usarse en este caso:

Código:

var
  Encontrado: Boolean;

begin
  Encontrado := false;
  while not Encontrado do
  begin
    Encontrado := BuscarUsuario;
    if Encontrado then
      break;
  end;
end;

bye

AGAG4 17-03-2005 02:09:07

asi es
 
Me falto el Break;....;)


La franja horaria es GMT +2. Ahora son las 11:37:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi