Ver Mensaje Individual
  #1  
Antiguo 16-04-2005
cardomjar cardomjar is offline
Miembro
 
Registrado: dic 2004
Posts: 14
Reputación: 0
cardomjar Va por buen camino
Salir de un procedimiento recursivo

Hola: defino el siguiente procedimiento recursivo:

Código Delphi [-]
procedure Tform1.brute(n:integer; str:string);
  var
    ord:integer;
  begin
    if (n > 0)then
    begin
      for ord := 65 to 90 do
      begin
        brute(n-1, str+chr(ord));
      end
    end
    else
    begin
     // Llama a una rutina asmCode que bajo determinadas circunstancias hace que final
 se ponga a true
      asmCode(str);
      if(final = true) then
      begin
  // Aquí es donde quiero salirme del todo
        exit;  
      end
    end;
  end;
Este procedimiento (de forma más o menos afortunada) genera todas cadenas posible compuestas por letras mayúsculas de "n" caracteres. Es llamado desde pongamos por caso, el procedimiento X.
Llegado el momento quiero que cuando se den determindas circunstancias (cuando final sea true) no siga calculando combinaciones, es decir, deseo salirme del todo, no sólo del procedimiento actual, sino que vuelva al procedimiento X. Con exit (el ejemplo que muestro), no funciona ya que se sale del procedimiento brute, pero continúa calculando combinaciones.
Espero haberme explicado.

Gracias de antemano y un saludo.

Última edición por marcoszorrilla fecha: 16-04-2005 a las 22:01:48.
Responder Con Cita