Ayuda para optimizar un procedimiento
Publicado por MSP (29 intervenciones) el 20/09/2009 08:14:10
Hola mi problema es el siguiente realice un procedimiento que me genera un listado de palabras y no tengo ningún problema, pero no creo que sea la forma mas correcta espero me puedan ayudar a optimizar el procedimiento.
procedure GenerarPalabras;
const
Diccionario = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
var
i01, i02, i03, i04, i05: Integer;
Lista: TStrings;
begin
Lista := TStringList.Create;
for i01 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] );
for i02 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] );
for i03 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] );
for i04 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] );
for i05 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] + Diccionario[ i05 ] );
end;
end;
end;
end;
end;
Lista.SaveToFile( 'c:\Palabras.txt' );
Lista.Free;
end;
Como veran mi situacion es la siguiente si quiesiera aumentar la longitud a 6 caracteres tendria que agregar otra linea como esta
for i06 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] + Diccionario[ i05 ] + Diccionario[ i06 ]);
end;
ahora si requiero que generar longitudes de 50 caracteres tendría que escribir demasiado código supongo que debe haber una mejor opción espero puedan ayudarme
procedure GenerarPalabras;
const
Diccionario = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
var
i01, i02, i03, i04, i05: Integer;
Lista: TStrings;
begin
Lista := TStringList.Create;
for i01 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] );
for i02 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] );
for i03 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] );
for i04 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] );
for i05 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] + Diccionario[ i05 ] );
end;
end;
end;
end;
end;
Lista.SaveToFile( 'c:\Palabras.txt' );
Lista.Free;
end;
Como veran mi situacion es la siguiente si quiesiera aumentar la longitud a 6 caracteres tendria que agregar otra linea como esta
for i06 := 1 to 62 do begin
Lista.Add( Diccionario[ i01 ] + Diccionario[ i02 ] + Diccionario[ i03 ] + Diccionario[ i04 ] + Diccionario[ i05 ] + Diccionario[ i06 ]);
end;
ahora si requiero que generar longitudes de 50 caracteres tendría que escribir demasiado código supongo que debe haber una mejor opción espero puedan ayudarme
Valora esta pregunta


0