Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
duda tonta con bucle For

Hola,

Estoy haciendo un generador de claves por eso de tener mil cuentas repartidas por internet y a veces no recordar algunas de ellas, en fin la duda es una tonteria (supongo), pero me trae frito, la cuestion es que el for no hace lo que quiero y no sé donde está el fallo, o dicho de otro modo, no sé como hacer para salir del bucle.

El código
Código Delphi [-]
procedure TForm1.findClick(Sender: TObject);
var
  i: integer;

begin
  for i:= 0 to clvs.Items.Count -1 do
    if (clvs.Items.Item[i].SubItems.Strings[2] = edit3.Text) and
       (length(clvs.Items.Item[i].SubItems.Strings[1]) > 32) then
       begin
          ShowMessage('La contraseña es demasiado larga para mostrarla aquí,'+#13#10+
                      'pero se le mostrará temporalmente en el campo texto'+#13#10+
                      '"Buscar contraseña".');
          edit3.Text:= clvs.Items.Item[i].SubItems.Strings[1];
       end
    else
    begin
      ShowMessage('La contraseña es: '+ clvs.Items.Item[i].SubItems.Strings[1]);
      break;
    end;
end;

Lo que intento con esas lineas es que busque la contraseña según el contenido de un edit, por ejemplo si en el edit pongo "google1" me debería devolver la contraseña de este "google1" Pero lo que hace es mostrarme una a una todas las contraseñas al ir recorriendo el listview. El uso del break es para forzarle a salir del bucle pero en ese caso solo me muestra el primer elemento del listview o lo que es lo mismo, el elemento del listview que le da valor 0 a la i sea o no igual al criterio de busqueda del edit.
¿Cómo hago para que el for acabe una vez encuentre el contenido del edit (en este caso edit3)?

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 30-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo recordar que exit.
Responder Con Cita
  #3  
Antiguo 30-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo recordar que exit.
Tono irónico detectado... voy a mirar el exit. Gracias casimiro.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #4  
Antiguo 30-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por danielmj Ver Mensaje
Tono irónico detectado... voy a mirar el exit. Gracias casimiro.
No, es que hace años que no uso delphi
Responder Con Cita
  #5  
Antiguo 30-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Solución... cambiar el orden de los if
Código Delphi [-]
procedure TForm1.findClick(Sender: TObject);
var
  i: integer;

begin
  for i:= 0 to clvs.Items.Count -1 do
  begin
    if (clvs.Items.Item[i].SubItems.Strings[2] = edit3.Text) and
       (length(clvs.Items.Item[i].SubItems.Strings[1]) > 32) then
       begin
          ShowMessage('La contraseña es demasiado larga para mostrarla aquí,'+#13#10+
                      'se le mostrará temporalmente en el campo texto'+#13#10+
                      '"Buscar contraseña".');
          edit3.Text:= clvs.Items.Item[i].SubItems.Strings[1];
       end;

    if (clvs.Items.Item[i].SubItems.Strings[2] = edit3.Text) and
       (length(clvs.Items.Item[i].SubItems.Strings[1]) < 32) then
        begin
          ShowMessage('La contraseña es: '+ clvs.Items.Item[i].SubItems.Strings[1]);
          break;
        end;
  end;
end;

saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda tonta con herencia Angel.Matilla C++ Builder 5 28-12-2013 10:52:18
Ayuda con QREPORT!!!!! (DUDA TONTA) pape19 Impresión 1 03-08-2010 00:36:28
duda algo tonta cyber_zero Varios 10 17-09-2008 00:08:58
duda tonta con gdb acrophet Conexión con bases de datos 14 19-02-2004 20:26:35
duda tonta :P acrophet Varios 2 01-12-2003 11:12:20


La franja horaria es GMT +2. Ahora son las 03:29:58.


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
Copyright 1996-2007 Club Delphi