Combinador de palabras

Iniciado por SebaSs, 17 Enero 2011, 05:29 AM

0 Miembros y 2 Visitantes están viendo este tema.

SebaSs

Bueno hice un programa muy simple que combina los caracteres o palabras del TextBox1 hacia una Listbox al hacer click en el boton 1 y haci me aparecen todas las combinaciones posibles esten en el diccionario o no...

Dim i, j, k, l, x As Integer

        Dim Combinacion As String

        Dim Existe As Boolean

        Dim Caracteres(1000) As String

        ListBox1.Items.Add(TextBox1.Text)

        Do

            x = ListBox1.Items.Count

            For l = 0 To ListBox1.Items.Count - 1

                For i = 0 To TextBox1.Text.Length - 1

                    Caracteres(i) = ListBox1.Items(l).ToString.Substring(i, 1)

                Next

                For i = 0 To TextBox1.Text.Length - 1

                    For j = 0 To TextBox1.Text.Length - 1

                        Existe = False

                        Combinacion = ListBox1.Items(l).ToString

                        Combinacion = Combinacion.Remove(i, 1)

                        Combinacion = Combinacion.Insert(i, Caracteres(j))

                        Combinacion = Combinacion.Remove(j, 1)

                        Combinacion = Combinacion.Insert(j, Caracteres(i))

                        For k = 0 To ListBox1.Items.Count - 1

                            If Combinacion = ListBox1.Items(k) Then Existe = True

                        Next

                        If Existe = False Then ListBox1.Items.Add(Combinacion)

                    Next

                Next

            Next

        Loop Until x = ListBox1.Items.Count
       
    End Sub


Mi pregunta es, como podria hacer menor carga al programa ya que al poner mas de 7 caracteres se finaliza porque se ve que encuentra muchas posibilidades...

Se me ocurrio que se podria reducir el codigo para que trabaje menos pero no se de que manera reducirlo mas :S

Ya saque las repeticiones de posibilidades para que aparescan 1 ves nada mas y no se me ocurre nada mas xD

Me podrian ayudar :)?

Gracias de antemano

abdiel2475

No entendi mucho para que sirve tu codigo
pero si no es nesesario poner mas de 7 caracteres
por que no pones un numero maximo de letras que le quepan al texbox?
asi como que el maximo de caracteres sean 6
o amm afuersas tienen qe ser mas de 7? :s
esqe no se me ocurre otra y pss me gustaria ayudarte

SebaSs

#2
El programa surgio por mera curiosidad, iva hacia otro punto con esto pero se me termino ocurriendo hacer este codigo y, en fin salio el programa....

Mira el programa funciona perfecto, forma todas las combinaciones de letras posibles pero cuando se pasan los 7 caracteres se tilda me gustaria saber alguna forma para optimizar el programa, que procese mas rapido las letras si es posible

Te dejo una captura por si no entedes bien el programa :)



Es muy simple pero me intriga como mejorar su funcionalidad :)

BlackZeroX

#3
.
ACABO de ver tU CODIGO y solo dire esto ESTO ES VB6 o inferior .NET es en programacion General ojo con eso...

Usa el buscador hay un proceso de 3 o 4 lineas de codigo SIMPLE y de forma recursiva que hace esactamente lo que tu haces pero mas Optimo. yo lo adapte a un modulo de Clase o puedes revisar tambien las Publicaciones del Moderador de este foro q es esactamente el mismo codigo solo que solo es la funcion.

P.D.: si no lo encuentras te toca buscar manualmente.

Dulces Lunas!¡.
The Dark Shadow is my passion.