Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: hepy_92 en 20 Junio 2007, 00:47 am



Título: Detectar si se repite una combinacion....
Publicado por: hepy_92 en 20 Junio 2007, 00:47 am
Primero que nada este code no es para mi... me lo pidio un amigo que en realidad no entiendo mucho lo que quiere hacer... al parecer es para descifrar un codigo del zodiaco.. algo así entendi.. pero bueno aca va la pregunta

lo que quiero hacer es por ejemplo tener un textbox, y en ese textbox se escribiria un textto como este con varios signos
1asd^ç*da!7//asd?^ç*??213¡¡¡
la idea es que al apretar un command button el textbox marque todas las combinaciones repeitdas de 3 caracteres, por ejemplo aca se repite la combinacion de 3 caracteres ^ç* entonces el textbox deberia marcar con otro color el ^ç*
me expplique bien???
es posible hacer esto con vb6???
Gracias de antemano!!!! :D


Título: Re: Detectar si se repite una combinacion....
Publicado por: CeLaYa en 20 Junio 2007, 19:54 pm
si, si se puede

Código:
Private Sub Command1_Click()
    Dim i As Integer
    Dim j As Integer
   
   
    For i = 1 To Len(text1.Text) 'Recorres el text
        For j = i + 2 To Len(text1.Text)
            'Buscas si hay cadenas de 3 que sean iguales
            If Mid(text1.Text, i, 3) = Mid(text1.Text, j, 3) Then
                'aqui marcas el color
                text1.SelStart = j - 1
                text1.SelLength = 3
                text1.SelColor = vbRed
                text1.SelBold = True
               
                text1.SelStart = i - 1
                text1.SelLength = 3
                text1.SelColor = vbRed
                text1.SelBold = True
             End If
        Next j
    Next i
End Sub



no he probado el código pero creo que si funciona, ha por cierto tendrías que usar un RichtTextBox para que te deje colorear el texto


Título: Re: Detectar si se repite una combinacion....
Publicado por: hepy_92 en 22 Junio 2007, 22:11 pm
me da error al poner el componente del richtextbox...=S no lo habia usado nunca antes
me tira el siguiente error
No se encontro la informacion de licencia para este componente. No tiene una licencia apropiada para usar esta funcionalidad en el entorno de diseño.


Título: Re: Detectar si se repite una combinacion....
Publicado por: Sancho.Mazorka en 23 Junio 2007, 00:48 am
Gracias al codigo de Celaya se puede hacer un buen compresor  ::)  Voy a probar hacer algo, si logro hacer algo les comento :D

EDIT: Entiendo su funcionalidad, pero...  :-[ alguien me explica como funciona realmente ? Gracias

EDIT2: Listo, lo entedi y paso a explicarlos para quien no lo entendio:

Costa de 2 bucles:
1_  1 a el maximo de caracteres en Text1
2_  desde donde este el bucle 1, hasta el final.

El primer bucle se encarga de repetirse una cantidad de veces, dependiendo de la cantidad de caracteres que haya en Text1, el segundo bucle se encarga de verificar los 3 siguientes caracteres empezando del valor del bucle 1, y si va encontrando   va marcando con color.

Suponganse que tenemos 9 caracteres, haria esto:
Bucle 1 variable I: 1    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 2    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 3    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 4    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 5    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 6    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 7    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 8    Bucle 2 variable J: 1-3; 4-6; 7-9
Bucle 1 variable I: 9    Bucle 2 variable J: 1-3; 4-6; 7-9

Espero que se haya entendido!  ;D


Sancho.Mazorka    :¬¬


Título: Re: Detectar si se repite una combinacion....
Publicado por: CeLaYa en 25 Junio 2007, 20:02 pm
me da error al poner el componente del richtextbox...=S no lo habia usado nunca antes
me tira el siguiente error
No se encontro la informacion de licencia para este componente. No tiene una licencia apropiada para usar esta funcionalidad en el entorno de diseño.


Reinstala el VB, con eso se debe corregir