Dejo un pequeño script para generar diccionarios de palabras (creado en un rato de ocio), es decir que, en base a un grupo de caracteres y una longitud seleccionada por el usuario, genera un listado de palabras con todas las posibles combinaciones de los caracteres.
Se puede portar facilmente a otros lenguajes como ser perl, python, VB (casi sin cambios), C/C++, etc
La idea de este es que sirva como ejemplo para aquellos que inician con vbs, el code no es para nada difícil, solamente necesita ser leído detenidamente
Algunas de las funciones utilizadas que pueden resultar desconocidas son:
Lbound: Indica el número de índice más pequeño en un array
Ubound: Indica el número de índice más grande en un array
Cint: convierte a Integer el valor ingresado
Len: indica el largo de una palabra
Código
Código
Set objfso = createobject("scripting.filesystemobject") Set ToFile = objfso.createtextfile("Dik.txt",True) DicLis = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") Length = Cint(inputbox("Ingrese el numero de caracteres de las palabras","Dictionary","")) DicU = Lbound(DicLis) DicL = Ubound(DicLis) Complete("") Function Complete(strin) For z = DicU to DicL word = strin & DicLis(z) If Len(word) = Length then ToFile.writeline word Else Complete(word) End If Next End Function ToFile.close Msgbox "Proceso Terminado"
Ejemplo:
Longitud: 4 caracteres
Tiempo: 8 segundos
Total de palabras: 456977
P IV 3.0, 1gb de ram
Para agregar más letras, números o símbolos, simplemente hay que modificar el array DicLis
Hay que tener cuidado al probarlo, se debería de elegir un número más bien pequeño como ser 3 o 4, ya que probando con el actual "diccionario" y con palabras de longitud 6, el archivo generado ocupaba 400 mb, son unas 309 millones de palabras y puede tardar bastante (tuve que recurrir a taskkill XD)
El script en si utiliza recursividad para hacer todo el trabajo, de ahí es que ocupe solamente algunas líneas
Eso es todo, saludos
P.D: si no lo terminas de entender, ya sabes donde mirar XD